Heim >Web-Frontend >js-Tutorial >Wie kann ich Async-Funktionen parallel in JavaScript ausführen?

Wie kann ich Async-Funktionen parallel in JavaScript ausführen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-24 03:35:10472Durchsuche

How Can I Execute Async Functions in Parallel in JavaScript?

Asynchrone Funktionen parallel ausführen

In ES7/ES2016 ist die sequentielle Ausführung von Warteausdrücken das Standardverhalten, ähnlich der Verkettung von Versprechen mit . Dann(). Um asynchrone Aufrufe jedoch parallel durchzuführen, gibt es alternative Ansätze.

Parallele Ausführung mit Promise.all()

Eine elegante Lösung ist die Verwendung von Promise.all( ). Diese Methode akzeptiert eine Reihe von Versprechen und gibt ein einzelnes Versprechen zurück, das zu einer Reihe von Ergebnissen aufgelöst wird:

await Promise.all([someCall(), anotherCall()]);

Um die einzelnen Ergebnisse zu speichern, können Sie den Rückgabewert in Variablen zerlegen:

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);

Vorsichtsmaßnahme: Behandeln Sie Ablehnungen mit Catch()

Beachten Sie, dass Promise.all() „fail fast“ implementiert. Semantik. Das heißt, wenn eines der Eingabeversprechen abgelehnt wird, wird die gesamte Operation mit dem Fehler aus dem fehlgeschlagenen Versprechen abgelehnt. Um potenzielle Fehler abzufangen und zu behandeln, verwenden Sie die Methode .catch().

Zum Beispiel:

Promise.all([happy('happy', 100), sad('sad', 50)])
  .then(console.log).catch(console.log); // Logs 'sad'

Das obige ist der detaillierte Inhalt vonWie kann ich Async-Funktionen parallel in JavaScript ausführen?. 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