2
我嘗試鏈接承諾。在getExternalMap()下面返回一個promise(處理ajax call => deferred.resolve()並返回deferred.promise)。 「第一鏈」被稱爲沒有問題,但「第二鏈」沒有被調用,爲什麼?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正在做狗屎,有點沉默地墜毀。 Bergi的評論也很好。謝謝你們倆 –