Heim >Web-Frontend >js-Tutorial >Wie kann sichergestellt werden, dass $.when() auf alle zurückgestellten Aufgaben in einem Array wartet?
Frage:
Betrachten Sie den folgenden Code als Liste von zurückgestellten Aufgaben wird erstellt:
var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { console.log("All done!") });
Allerdings: „Alles erledigt!“ wird protokolliert, bevor alle zurückgestellten Aufgaben abgeschlossen sind. Wie können Sie ein Array von Verzögerungen an $.when() übergeben und sicherstellen, dass es auf den Abschluss aller Aufgaben wartet?
Antwort:
So übergeben Sie ein Array von Werte zu einer Funktion hinzufügen, die separate Parameter erwartet, verwenden Sie Function.prototype.apply:
$.when.apply($, deferreds).then(function() { console.log("All done!") });
Hier ist eine Aufschlüsselung der Code:
Alternativ können Sie in ES6 und neueren Versionen den Spread verwenden Operator:
$.when(...deferreds).then(function() { console.log("All done!") });
In beiden Fällen erhält der Handler eine Reihe von Ergebnissen, eines für jedes zurückgestellte Ergebnis. Verarbeiten Sie dieses Array, um die benötigten Werte zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass $.when() auf alle zurückgestellten Aufgaben in einem Array wartet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!