下面是我帶有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