Maison >interface Web >js tutoriel >Comment exécuter des promesses de manière séquentielle pour les tableaux dynamiques ?
Lorsque vous travaillez avec des tableaux, il est souvent nécessaire d'exécuter une série de tâches pour chaque élément de manière séquentielle, en passant des paramètres entre les promesses.
Pour y parvenir, on peut utiliser une série imbriquée d'appels .then(). Cependant, à mesure que la taille du tableau augmente, cette approche devient lourde et peu flexible.
Une solution concise consiste à utiliser la méthode .reduce() pour plier le tableau en une série. de promesses :
<code class="js">const promiseChain = myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() );</code>
Une approche plus maintenable consiste à utiliser une fonction asynchrone qui parcourt le tableau et exécute chaque promesse de manière séquentielle :
<code class="js">const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x); } }; forEachSeries(myArray, myPromise);</code>
Si les valeurs de retour des promesses sont nécessaires, une légère modification de la fonction mapSeries peut être utilisée :
<code class="js">const mapSeries = async (iterable, fn) => { const results = []; for (const x of iterable) { results.push(await fn(x)); } return results; };</code>
Cette approche offre une plus grande flexibilité et une plus grande lisibilité du code lorsque gérer des tableaux dynamiques de promesses.
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!