Übergeben Sie ein Array von Deferreds an $.when()
Beim Umgang mit einem komplexen Satz asynchroner Aufgaben kann dies praktisch sein Übergeben Sie ein Array verzögerter Objekte an die Methode $.when(), um zu benachrichtigen, wenn alle Aufgaben abgeschlossen sind. Allerdings erwartet $.when() standardmäßig separate Deferred-Objekte als einzelne Parameter, was unpraktisch sein kann, wenn die Anzahl der Deferred-Objekte unbekannt ist. Dieser Artikel bietet eine Lösung für dieses Problem mithilfe von Function.prototype.apply.
Lösung:
Um ein Array verzögerter Objekte an $.when() zu übergeben, verwenden Sie die Function.prototype.apply-Methode wie folgt:
$.when.apply($, my_array).then( ___ );
Damit können Sie ein Array von Deferred-Objekten als einzelnes Argument übergeben $.when(). Der folgende Beispielcode demonstriert diesen Ansatz:
var deferreds = getSomeDeferredStuff(); $.when.apply($, deferreds).done(function() { $("div").append("<p>All done!</p>"); });
ES6:
In ES6 können Sie den Spread-Operator (...) anstelle von Function.prototype verwenden .anwenden:
$.when(...my_array).then( ___ );
Hinweis:
Es ist Es ist wichtig zu beachten, dass die für die .then()-Methode bereitgestellte Handlerfunktion das Argumentarray verarbeiten sollte, um das Ergebnis jedes Versprechens abzurufen. Da die Anzahl der formalen Parameter, die der Handler benötigt, wahrscheinlich im Voraus unbekannt ist, muss der Handler das Argumentarray entsprechend verarbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array verzögerter Objekte an „$.when()' von jQuery übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!