您只能在承諾鏈中調用done()
一次,而且必須在鏈的末尾。在有問題的代碼,該done()
功能在承諾鏈條兩次打電話:當你的代碼開始了與兩個獨立的承諾鏈,你最終會在以後的某個點一起把它們合併可能發生
new WinJS.Promise(initFunc).then(function() {
}).done(function() { <====== done() is incorrectly called here--should be then()
}).then(function() { <====== the call to then() here will throw an error
}).done(function() {
});
此問題的情況下,如下:
new WinJS.Promise(initFunc).then(function() {
/* do something that returns a promise */
}).done(function() { <====== change this done() to a then() if you combine the two
}); promise chains
new WinJS.Promise(initFunc).then(function() {
/* do something that returns a promise */
}).done(function() {
});
來源
2012-12-14 19:50:18
RSW
您可以使用.join合併到承諾鏈,以在兩個完成時完成。我認爲這就是你要達到的目標。只需使用.then的結果,你會很好 –