Heim  >  Artikel  >  Web-Frontend  >  Behält Promise.all die Reihenfolge der aufgelösten Werte bei?

Behält Promise.all die Reihenfolge der aufgelösten Werte bei?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 12:15:02234Durchsuche

Does Promise.all Preserve the Order of Resolved Values?

Reihenfolge der aufgelösten Werte in Promise.all

Die Promise.all-Methode verwendet ein Iterable als Argument und gibt ein einzelnes Versprechen zurück, das aufgelöst wird zu einem Array von Werten, sobald alle Versprechen im Iterable aufgelöst wurden. Die Dokumentation legt nahe, dass die Reihenfolge der Werte im aufgelösten Array erhalten bleibt, aber gibt es eine verlässlichere Quelle?

Reihenfolgeerhaltung in der Spezifikation

Die ECMAScript-Spezifikation für Promise.all gibt an, dass:

Alle Promise-Instanzen in promiseList aufgelöst werden und ihre jeweiligen Elemente in der Ergebnisliste auf die entsprechenden Werte gesetzt werden.

Dies deutet darauf hin, dass die Die Reihenfolge der Versprechensinstanzen im Eingabeiterable bleibt im Ausgabearray erhalten.

Interne Implementierung

Um ein Versprechen aufzulösen, verwendet die Promise.all()-Methode die Promise.all().Resolve interne Operation. Dieser Vorgang weist jeder Promise-Instanz einen internen [[Index]]-Slot zu und gibt seinen Index in der ursprünglichen Eingabeiterable an.

Schlussfolgerung

Basierend auf der Spezifikation und dem Bei der internen Implementierung von Promise.all() können wir mit Sicherheit sagen, dass die Reihenfolge der aufgelösten Werte erhalten bleibt. Das aufgelöste Array folgt strikt der Reihenfolge der Versprechen in der Eingabe-Iterable.

Das obige ist der detaillierte Inhalt vonBehält Promise.all die Reihenfolge der aufgelösten Werte bei?. 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