Dynamische mehrfache verzögerte jQuery Ajax-Aufrufe

Verwenden des verzögerten Musters aus jQueryhttp://api.jquery.com/jQuery.when/Ich versuche, mehrere JSONP-Ajax-Anrufe zu tätigen und auf die Ergebnisse zu warten, bevor ich mit dem nächsten Schritt fortfahre. Ich kann dies mit einer festgelegten Anzahl von Aufrufen erreichen, da ich die Anzahl der aufgelösten Argumentparameter im zurückgestellten Objekt ".done ()" festlegen kann. In meiner Anwendung funktioniert dies jedoch nicht, da die Anzahl der Anrufe dynamisch und immer unbekannt ist.

Dieses erste vereinfachte Beispiel funktioniert, weil ich die Anzahl der Argumente in der aufgelösten Funktion .done () festlegen kann. Ich weiß, dass ich zwei brauche, weil die .when () zwei Aufrufe enthalten:

$.when( $.ajax( url1 ), $.ajax( url2 ) ).done(function( a1, a2 ) {  
    var data = a1[ 0 ] + a2[ 0 ]; 
});

Folgendes brauche ich, kann es aber nicht zum Laufen bringen:

var urls = GetUrlList(); // returns array of urls to json service
var requests = []; // hold ajax request
for (i = 0; i < urls.length; i++) {
    requests.push($.ajax(url[i]));
}

$.when.apply($, requests).done(function ("what goes here?") {
    // Need to get the data returned from all ajax calls here
});

Vielen Dank für jede Hilfe!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage