2
私は約束を守ろうとしています。以下のgetExternalMap()は約束を返しています(ajax call => deferred.resolve()を処理し、deferred.promiseを返します)。 "最初の連鎖"は問題なく呼び出されますが、 "2番目の連鎖"は呼び出されません。Qチェーンが正しくない
私はそれがよく書かれていると思ったが、そうではなく、なぜ私はまだ見つけることができない。
var self = this;
getExternalMap().then(function() {
console.log("First chaining");
var parsedMap = self.destinationsApiParser.getSortDestinations();
return self.initProxies(parsedMap);
}).then(function() {
console.log('second chaining');
});
this.initProxies = function(parsedMap) {
var deferred = Q.defer();
var destinationsApiProxy = new DestinationsApiProxy(this.app, parsedMap);
deferred.resolve();
return deferred.promise;
}
チェーンの最後に 'catch()'または 'done()'を追加してエラーを確認してください。 – Sirko
'initProxies'は約束を返すべきではありません。非同期ではありません。 – Bergi
は、sirkoのおかげで問題を発見しました、initProxiesは何もしておらず、ちょっと黙ってクラッシュしました。また、ベルギの発言も良いです。あなたのおかげです。 –