下面是我带有promise的多个ajax调用。在jquery中获取多个延迟对象的响应
$(window).load(function(){
$.when(getApiModemList()).done(function(vendors){
var deferreds = calculateApiBalances(vendors);
$.when.apply($,deferreds).done(function(balance) {
console.log(balance);
console.log("All Done");
});
});
function getApiModemList(){
return $.getJSON("url");
}
function calculateApiBalances(vendors)
{
var defer=[];
$.each(vendors,function(k,v){
defer.push($.getJSON(someurl));
});
return defer;
}
});
函数calculateApiBalances()返回我一些余额,我需要总结得到所有余额的总和。 但是,当打印console.log(余额)它不提供我有效的数组平衡JSON。 另一个问题是如果calculateApiBalances()中的任何一个ajax调用失败,它将不打印All Done。 上面的代码应该做些什么来实现这一点。
首先,[避免延迟反模式](http://stackoverflow.com/q/23803743/1048572)! – Bergi
数组包含哪些错误?通常,加入的承诺会被拒绝。 – Bergi
@Bergi。修正了anitpattern问题。我不在乎,如果一些Ajax调用失败我只需要考虑成功的Ajax调用的平衡。是否有可能? – Vibhas