Maison > interface Web > js tutoriel > Comment puis-je exécuter des fonctions asynchrones en parallèle en JavaScript ?

Comment puis-je exécuter des fonctions asynchrones en parallèle en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-11-24 03:35:10
original
508 Les gens l'ont consulté

How Can I Execute Async Functions in Parallel in JavaScript?

Exécuter des fonctions asynchrones en parallèle

Dans ES7/ES2016, l'exécution séquentielle des expressions d'attente est le comportement par défaut, semblable à l'enchaînement de promesses avec . alors(). Cependant, pour effectuer des appels asynchrones en parallèle, il existe des approches alternatives.

Exécution parallèle avec Promise.all()

Une solution élégante consiste à utiliser Promise.all( ). Cette méthode prend un tableau de promesses et renvoie une seule promesse qui se résout en un tableau de résultats :

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

Pour stocker les résultats individuels, vous pouvez déstructurer la valeur de retour en variables :

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

Attention : gérer les rejets avec catch()

Notez que Promise.all() implémente "fail fast" sémantique. Cela signifie que si l'une des promesses d'entrée est rejetée, l'opération entière sera rejetée avec l'erreur de la promesse échouée. Pour détecter et gérer les erreurs potentielles, utilisez la méthode .catch().

Par exemple :

Promise.all([happy('happy', 100), sad('sad', 50)])
  .then(console.log).catch(console.log); // Logs 'sad'
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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal