"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment promettre. all () peut gérer plusieurs opérations asynchrones simultanées?

Comment promettre. all () peut gérer plusieurs opérations asynchrones simultanées?

Publié le 2025-03-22
Parcourir:907

How Can Promise.all() Handle Multiple Concurrent Asynchronous Operations?

Gestion de plusieurs opérations asynchrones simultanément

Dans les scénarios où une séquence d'opérations asynchrones (représentée comme promesses) est exécutée, il devient nécessaire de déterminer lorsque toutes ces opérations ont été effectuées avant de procéder avec des promesses suivantes). Cet article fournit une solution à ce défi en tirant parti de la méthode Promise.all ().

Comme vous l'avez mentionné, la fonction DosomeaSyncStuff () effectue des tâches asynchrones. En le modifiant pour retourner une promesse, nous pouvons capturer l'état d'achèvement de chaque opération asynchrone. Cela nous permet de collecter toutes ces promesses en un tableau, qui est ensuite transmis à promesse.all ().

La méthode Promise.all () accepte un tableau de promesses comme paramètre. Une fois que toutes les promesses du tableau ont résolues ou rejetées, Promise.all () renvoie une seule promesse. Cette promesse unique se résout à un tableau des résultats (ou des raisons de rejet) à partir des promesses individuelles.

Dans votre code, vous pouvez implémenter cela en incorporant les étapes suivantes:

const promises = [];

// Create a Promise for each asynchronous operation
for (let i = 0; i  {
    // All asynchronous operations have completed. Execute subsequent tasks here.
    for (let i = 0; i  {
    // Handle any errors that occurred during the asynchronous operations.
  });

En utilisant Promise.all (), vous pouvez vous assurer efficacement que toutes les opérations asynchrones ont terminé avec succès avant d'exécuter des tâches qui dépendent de leurs résultats. retourner la nouvelle promesse ((résolution) => { setTimeout (() => { Console.log (valeur "Résolution"); résoudre (valeur); }, Math.floor (math.random () * 1000)); }); } fonction test () { const promises = []; pour (soit i = 0; i { Console.log ("All Done", résultats); }) .Catch ((e) => { // gérer les erreurs ici }); } test ();

Dans cet exemple, nous définissons une fonction asynchrone DosomethingaSync () qui se résout avec un retard aléatoire. Nous créons un éventail de promesses et utilisons la promesse.tall () pour attendre que tous se résolvent. Une fois qu'ils ont tous terminé avec succès, nous pouvons poursuivre nos tâches suivantes.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3