我正在進行ajax調用來獲取結果數組。從這個數組中,我正在進行一系列Ajax調用,並試圖對結果進行一些處理。當我返回Promise.all()
並繼續執行.then(function(moreData){})
時,moreData
處於掛起狀態。我錯過了什麼?我沒想到該函數在每個doSomethingElse
函數解決之前都會運行。與承諾數組鏈接
doSomething()
.then(function(data){
data = data.d.results;
return Promise.all(data.map(function(group){
return doSomethingElse(group.Id);
}));
})
.then(function(moreData){
//moreData is in pending state
})
.then(null, function(err){
alert(err);
});
的doSomething
和doSomethingElse
函數返回一個Deferred對象。
function doSomething(){
var dfd = $.ajax({...})
return dfd;
}
function doSomethingElse(id){
var dfd = $.ajax({...})
return dfd;
}
是'moreData'一個數組? – Amit
是的,我預料會是。我得到了'Promise {[[PromiseStatus]]:「pending」,[[PromiseValue]]:undefined}'。 – MickB
什麼版本的jQuery?我認爲這將是jQuery承諾實現和任何'Promise'之間的衝突。 –