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
Mary-Kate Olsenoriginal
2024-11-24 03:35:10462parcourir

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()]);

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

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

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'

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:
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