Heim > Web-Frontend > js-Tutorial > Wie führt man Versprechen nacheinander für dynamische Arrays aus?

Wie führt man Versprechen nacheinander für dynamische Arrays aus?

Barbara Streisand
Freigeben: 2024-10-20 14:58:30
Original
568 Leute haben es durchsucht

How to Execute Promises Sequentially for Dynamic Arrays?

Sequentielles Ausführen von Versprechen mit dynamisch gefüllten Arrays

Bei der Arbeit mit Arrays ist es oft notwendig, eine Reihe von Aufgaben für jedes Element nacheinander auszuführen und Parameter zwischen Versprechen zu übergeben.

Sequentielle Ausführung von Versprechen

Um dies zu erreichen, kann man eine verschachtelte Reihe von .then()-Aufrufen verwenden. Mit zunehmender Array-Größe wird dieser Ansatz jedoch umständlich und unflexibel.

Faltenreduzierung mit Reduce

Eine einfache Lösung besteht darin, die Methode .reduce() zu verwenden, um das Array in eine Reihe zu falten von Versprechen:

<code class="js">const promiseChain = myArray.reduce(
  (p, x) => p.then(() => myPromise(x)),
  Promise.resolve()
);</code>
Nach dem Login kopieren

Asynchrone Funktionen für Schleifen

Ein besser wartbarer Ansatz ist die Verwendung einer asynchronen Funktion, die das Array durchläuft und jedes Versprechen nacheinander ausführt:

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

forEachSeries(myArray, myPromise);</code>
Nach dem Login kopieren

Rückgabewerte sammeln

Wenn die Rückgabewerte der Versprechen benötigt werden, kann eine leichte Modifikation der mapSeries-Funktion verwendet werden:

<code class="js">const mapSeries = async (iterable, fn) => {
  const results = [];

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

  return results;
};</code>
Nach dem Login kopieren

Dieser Ansatz bietet mehr Flexibilität und Lesbarkeit des Codes, wenn Umgang mit dynamischen Arrays von Versprechen.

Das obige ist der detaillierte Inhalt vonWie führt man Versprechen nacheinander für dynamische Arrays aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage