2017-10-03 1 views
0

Ich benutze jquery und habe zwei Variablen.

trackFeatures - Einzel Ajax-Request, artistRequests - Array von AJAX Anfragen

Ich möchte etwas tun, wenn beide trackFeatures und artistRequests abgeschlossen haben. Für nur artistRequests kann ich tun:

$.when.apply($, artistRequests).done(function() { ... } 

Gibt es eine Möglichkeit, die einzelne Anfrage mit den Array-Anfragen zu kombinieren? Neben dem Hinzufügen der einzelnen Anfrage zum Array oder testet sie sequentiell.

Dank

Antwort

1

Bezug dieses link und Beispiel:

var d1 = $.Deferred(); 
 
var d2 = $.Deferred(); 
 
    
 
$.when(d1, d2).done(function (v1, v2) { 
 
    console.log(v1); // "Fish" 
 
    console.log(v2); // "Pizza" 
 
}); 
 
    
 
d1.resolve("Fish"); 
 
d2.resolve("Pizza");

Ebenso, wenn Sie artistRequests = [d1,d2] Reihe von Versprechungen wie

haben, können Sie Spread Operator wie

für Array verwenden

$.when(trackFeatures , ...artistRequests).done(function (v1, v2) { 
 
    console.log(v1); // "Fish" 
 
    console.log(v2); // "Pizza" 
 
});

PS: ...artistRequests spaltete die jeden Wert von Array in einzelne Variable.

+0

Sieht so aus, als könnte ich einfach ... artistRequests verwenden, als wäre es ein eigenes Argument, also ** $. When (trackFeatures, ... artistRequests) .done (function() {...} ** ist arbeite für mich, danke! – Jimmy

Verwandte Themen