[英]JQuery: Single callback for multiple AJAX calls
我在這里閱讀了很多主題,但是找不到一個可以解決我的問題的答案。
基本上,我正在構建n個 AJAX調用,僅在它們全部返回后才想做某事。
但是無論我如何嘗試, done()
過早觸發回調。 這是我的代碼:
// turn the URL array into an AJAX request array
for (var i=0; i<mediaRequests.length; i++) {
mediaRequests[i] = $.ajax(mediaRequests[i], {dataType: 'jsonp'});
}
$.when($, mediaRequests).done(function() {
var responses = arguments[1];
// for each response...
for (var i=0; i<responses.length; i++) {
var data = responses[i].responseJSON;
console.log(data);
}
});
但是控制台會打印出undefined
。
為什么$.when($, mediaRequests).done()
給我答復?
您好,您可以將defferreds數組與apply一起使用,如下所示:
$.when.apply($, mediaRequests).done(function(){
代替:
$.when($, mediaRequests).done(function() {
當您知道要調用多少個ajax時,您可以執行此操作(假設其中有3個):
$.when.apply($, mediaRequests).done(function(result1,result2,result3){
// now result1 got result from first ajax, result2 from second ajax and so on
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.