Maison >interface Web >js tutoriel >Comment puis-je exécuter des fonctions asynchrones en parallèle en 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!