2016-10-22 3 views
1

Ich kann eine Antwort erhalten, wenn 'alle' Ajax-Anfragen von dieser Frage stammen.Antwort erhalten, wenn alle jQuery Ajax-Anfragen erledigt sind?

Wait until all jQuery Ajax requests are done?

Während ich nicht ‚all‘ Antwort eine Frage zu erhalten, wenn jede Ajax getan werden finden.

Wie kann ich das tun?

Beispiel für warten, bis alle Antworten fertig sind, aber ich möchte eine Antwort erhalten, wenn jeder Ajax abgeschlossen ist.

function translate(...){ 
    return $.ajax({ 
     // settings... 
    }); 
}); 

var requests = []; 
translatable_fields.each(function(){ 
    requests.push(translate(...)); 
}); 

$.when.apply($, requests).done(function(schemas) { 
    console.log("All requests complete"); 
    // do something... 
}); 

Antwort

0

Die Antworten werden für done an den Rückruf übergeben werden. Jeder AJAX-Aufruf erhält seinen eigenen Parameter, und jeder Parameter ist ein Array der drei Teile der Antwort: der Antworttext, der Status und das jqXHR-Objekt, das dem AJAX-Aufruf zugeordnet ist. Documentation for $.when

Sie die Antworttexte der arguments object mit auf einmal bekommen können:

$.when.apply($, requests).done(function() { 
    var responses = $.map(arguments, function(arr) { return arr[0] }); 
}); 
Verwandte Themen