In ES7/ES2016 führt die Verwendung mehrerer Wait-Anweisungen nicht dazu, dass die Funktionen parallel ausgeführt werden. Stattdessen werden sie nacheinander ausgeführt, ähnlich wie die Verkettung von .then() mit Versprechen.
Beispiel:
await someCall(); await anotherCall();
In diesem Beispiel wird anotherCall() nur ausgeführt wird aufgerufen, sobald someCall() abgeschlossen ist.
Asynchrone Funktionsaufrufe parallelisieren
Um asynchrone Funktionen parallel auszuführen, gibt es einige Optionen:
Der einfachste Ansatz in Node.js besteht darin, Promise.all() zu verwenden, um die asynchronen Funktionen zu verpacken, die Sie gleichzeitig ausführen möchten:
await Promise.all([someCall(), anotherCall()]);
Dadurch wird eine erstellt einzelnes Versprechen, das den Abschluss aller Eingabeversprechen darstellt.
Wenn Sie die Ergebnisse speichern müssen, können Sie Destrukturierung in der Wait-Anweisung verwenden:
let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Promise.all wird schnell scheitern. Das heißt, wenn eines der Eingabeversprechen abgelehnt wird, wird der gesamte Vorgang mit diesem Fehler abgelehnt.
Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone Funktionen gleichzeitig in JavaScript ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!