簡體   English   中英

jQuery:多個AJAX調用的單個回調

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM