Maison > interface Web > js tutoriel > Comment utiliser Promise.all pour gérer et attendre plusieurs promesses ?

Comment utiliser Promise.all pour gérer et attendre plusieurs promesses ?

Mary-Kate Olsen
Libérer: 2024-12-24 17:37:11
original
414 Les gens l'ont consulté

How to Use Promise.all to Manage and Await Multiple Promises?

Comment gérer plusieurs promesses et attendre leur achèvement

Lorsque vous travaillez avec du code asynchrone, il est souvent nécessaire de gérer plusieurs promesses et de les attendre tout doit être terminé avant de continuer. Cet article vous guidera dans la réalisation de cet objectif en utilisant Promise.all.

Présentation de Promise.all

Promise.all accepte un éventail de promesses et renvoie une seule promesse qui résout lorsque toutes les promesses d'entrée ont été résolues, ou rejette si l'une d'entre elles rejette.

Restructuration doSomeAsyncStuff pour renvoyer une promesse

Pour que doSomeAsyncStuff fonctionne avec des promesses, modifiez-le comme suit :

function doSomeAsyncStuff() {
    return new Promise((resolve) => {
        editor.on('instanceReady', function(evt) {
            doSomeStuff();
            resolve(true);
        });
    });
}
Copier après la connexion

Utiliser Promise.all pour attendre toutes les tâches asynchrones

Une fois que doSomeAsyncStuff renvoie une promesse, vous pouvez utiliser Promettez.all d'attendre que toutes les instances soient terminées. Voici une version améliorée de votre code :

const promises = [];

for (let i = 0; i < 5; i++) {
    promises.push(doSomeAsyncStuff());
}

Promise.all(promises)
    .then(() => {
        for (let i = 0; i < 5; i++) {
            doSomeStuffOnlyWhenTheAsyncStuffIsFinish();    
        }
    })
    .catch((e) => {
        // Handle errors here
    });
Copier après la connexion

Ce code crée un tableau de promesses à partir de chaque appel à doSomeAsyncStuff. Promise.all prend ce tableau et attend que toutes les promesses soient résolues. Une fois toutes les promesses résolues, le rappel then est exécuté, vous permettant d'effectuer des actions qui dépendent des résultats des tâches asynchrones.

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