Maison > interface Web > js tutoriel > le corps du texte

Comment exécuter des promesses de manière séquentielle avec les paramètres d'un tableau rempli dynamiquement ?

Patricia Arquette
Libérer: 2024-10-20 15:00:30
original
391 Les gens l'ont consulté

How to Execute Promises Sequentially with Parameters from a Dynamically Populated Array?

Chaînage de promesses : exécuter des promesses de manière séquentielle avec les paramètres d'un tableau

Dans la programmation asynchrone, les promesses offrent un mécanisme robuste pour gérer les opérations asynchrones. Dans ce scénario, vous cherchez à exécuter une fonction de promesse de manière séquentielle pour chaque élément d'un tableau, tout en vous assurant que chaque promesse est résolue avant de passer à la suivante.

Remplissage dynamique des tableaux et exécution des promesses

Votre objectif est de remplir dynamiquement un tableau avec des données et d'exécuter une fonction de promesse pour chaque élément du tableau. Cependant, l'approche actuelle via le chaînage .then() dans une boucle présente des limites lorsque le tableau est rempli dynamiquement. Pour résoudre ce problème, nous présentons deux solutions optimales :

Fold Expressions :

  1. Créez un tableau de promesses avec myArray.reduce().
  2. Résolvez le tableau de promesses dans un ordre séquentiel à l'aide de Promise.resolve().

Cette approche mappe efficacement chaque élément du tableau à sa promesse et les exécute dans l'ordre. Cependant, cela peut entraîner une surcharge de mémoire élevée si la taille du tableau est importante.

Fonctions asynchrones :

  1. Utilisez une fonction asynchrone pourEachSeries().
  2. Parcourez le tableau et attendez la résolution de chaque promesse en utilisant wait action(x).

Les fonctions asynchrones offrent l'avantage de la concision, de la lisibilité et de l'utilisation optimale de la mémoire (O(1) ). De plus, vous pouvez étendre cette approche pour collecter les valeurs de retour.

Extrait :

<code class="javascript">const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x);
  }
};

forEachSeries(myArray, myPromise).then(() => {
  console.log('all done!');
});</code>
Copier après la connexion

Cet extrait mis à jour résout votre besoin d'exécuter les promesses de manière séquentielle à partir d'un tableau rempli dynamiquement. , en veillant à ce que chaque promesse soit résolue avant de passer à la suivante.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!