Heim >Web-Frontend >js-Tutorial >Wie kann ich Async-Funktionen parallel in JavaScript ausführen?
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!