我正在进行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'之间的冲突。 –