Heim  >  Artikel  >  Web-Frontend  >  Wie führe ich Versprechen sequentiell mit Array-Parametern aus?

Wie führe ich Versprechen sequentiell mit Array-Parametern aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-20 14:59:02449Durchsuche

How to Execute Promises Sequentially with Array Parameters?

Promises nacheinander mit Array-Parametern ausführen

In einigen Szenarien müssen Sie möglicherweise Versprechen nacheinander ausführen und dabei Parameter aus einem Array übergeben. Dies wird notwendig, wenn das Array dynamisch gefüllt wird und die Reihenfolge der Ausführung entscheidend ist.

Ein Ansatz zum Erstellen einer „pausierbaren Schleife“ ist die wiederholte Verwendung der .then-Methode. Dies kann jedoch umständlich sein und zu einer pyramidenförmigen Versprechenskette führen.

Versprechen verwenden

Eine sauberere Lösung besteht darin, Array.reduce zu verwenden, um die Versprechenskette zu einem einzigen Versprechen zusammenzufassen:

myArray.reduce(
  (p, x) =>
    p.then(() => myPromise(x)),
  Promise.resolve()
)

Dieser Ansatz erstellt eine Reihe verketteter Versprechen und gewährleistet so eine sequentielle Ausführung.

Verwendung asynchroner Funktionen

Alternativ ermöglichen asynchrone Funktionen eine besser lesbare und effizientere Implementierung. Das folgende Beispiel verwendet eine asynchrone Funktion, um die Versprechen zu iterieren und auszuführen:

const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x)
  }
}

forEachSeries(myArray, myPromise)

Rückgabewerte sammeln

Wenn Sie die Rückgabewerte der Versprechen sammeln müssen, können Sie eine modifizierte Version verwenden der forEachSeries-Funktion namens „mapSeries“:

const mapSeries = async (iterable, fn) => {
  const results = []

  for (const x of iterable) {
    results.push(await fn(x))
  }

  return results
}

Diese Funktion iteriert durch das Iterable, sammelt die Ergebnisse der Versprechen und gibt ein Array der Ergebnisse zurück.

Mit diesen Techniken können Sie Führen Sie Versprechen einfach nacheinander aus, übergeben Sie Parameter aus einem Array, stellen Sie die Ausführungsreihenfolge sicher und sammeln Sie die Ergebnisse nach Bedarf.

Das obige ist der detaillierte Inhalt vonWie führe ich Versprechen sequentiell mit Array-Parametern aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn