Maison > interface Web > js tutoriel > Comment puis-je exécuter plusieurs fonctions JavaScript asynchrones simultanément ?

Comment puis-je exécuter plusieurs fonctions JavaScript asynchrones simultanément ?

Mary-Kate Olsen
Libérer: 2024-11-19 07:14:02
original
840 Les gens l'ont consulté

How Can I Execute Multiple Async JavaScript Functions Concurrently?

Exécuter simultanément des fonctions asynchrones en JavaScript

En JavaScript, attendre plusieurs fonctions asynchrones peut donner l'impression qu'elles s'exécutent séquentiellement plutôt que simultanément. Cela soulève la question : comment pouvons-nous réaliser une exécution parallèle de ces fonctions ?

Utiliser Promise.all() pour le parallélisme

Pour exécuter des fonctions asynchrones en parallèle, vous pouvez utiliser Promise.all( ) fonction. Il prend un tableau de promesses comme argument et renvoie une seule promesse qui se résout lorsque toutes les promesses du tableau sont résolues.

await Promise.all([someCall(), anotherCall()]);
Copier après la connexion

Dans ce code, someCall() et anotherCall() sont appelés simultanément, et le script ne se poursuit que lorsque les deux fonctions ont fini de s'exécuter.

Stockage des résultats

Si vous souhaitez accéder aux résultats de l'async parallèle appels, vous pouvez déstructurer le tableau renvoyé par Promise.all() :

let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Copier après la connexion

Attention : Fail-Fast Behavior

Il est important de noter que Promise.all() suit un "fail -approche "rapide". Si l'une des promesses du tableau est rejetée, la promesse entière Promise.all() sera rejetée avec l'erreur de la première promesse échouée :

// If any of the promises fails, it will reject
Promise.all([happy('happy', 100), sad('sad', 50)]).then(console.log).catch(console.log);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal