Heim >Web-Frontend >js-Tutorial >Wie kann sichergestellt werden, dass $.when() auf alle zurückgestellten Aufgaben in einem Array wartet?

Wie kann sichergestellt werden, dass $.when() auf alle zurückgestellten Aufgaben in einem Array wartet?

Linda Hamilton
Linda HamiltonOriginal
2024-12-11 02:41:191047Durchsuche

How to Ensure $.when() Waits for All Deferred Tasks in an Array?

Übergabe eines Arrays von Deferreds an $.when()

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:

  • $.when.apply($, deferreds): Verteilt das deferreds-Array in separate Argumente für $.when().
  • then(function): Hängt einen Handler an Das wird ausgeführt, wenn alle Verzögerungen behoben sind.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn