Heim  >  Artikel  >  Web-Frontend  >  Wie führe ich ein bestimmtes Array von Versprechen kontinuierlich in JavaScript aus?

Wie führe ich ein bestimmtes Array von Versprechen kontinuierlich in JavaScript aus?

PHPz
PHPznach vorne
2023-09-24 13:25:02715Durchsuche

如何在 JavaScript 中连续运行给定的 Promise 数组?

In JavaScript gibt es eine Methode namens „Promise.all“, mit der Sie eine Reihe von Promises parallel ausführen können. Es kann jedoch vorkommen, dass Sie Ihren Verpflichtungen weiterhin nachkommen möchten. Dies ist nützlich, wenn Sie sicherstellen möchten, dass jedes Versprechen nacheinander ausgeführt wird, oder wenn Sie das Ergebnis eines Versprechens verwenden müssen, wenn Sie das nächste Versprechen ausführen.

Es gibt verschiedene Möglichkeiten, eine Reihe von Versprechen hintereinander in JavaScript auszuführen. In diesem Artikel stellen wir einige davon vor.

Promise.prototype.then()

Eine Möglichkeit, Arrays von Promise in Reihe auszuführen, besteht darin, sie mithilfe der Methode then() miteinander zu verketten. Diese Methode akzeptiert als Eingabe eine Funktion, die nach Abschluss des Promise ausgeführt wird.

Beispiel

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      Promise.resolve(1) .then(result => {
         document.getElementById("result1").innerHTML = result
         return Promise.resolve(2);
      }) .then(result => {
          document.getElementById("result2").innerHTML = result
         return Promise.resolve(3);
      }) .then(result => {
          document.getElementById("result3").innerHTML = result
      });  
   </script>
</body>
</html>

Wie Sie sehen können, verketten wir drei Versprechen mithilfe der Methode then(). Das erste Versprechen wird in den Wert 1 aufgelöst und zeigt diesen Wert an. Das zweite Promise wird in den Wert 2 aufgelöst, der ebenfalls angezeigt wird. Schließlich wird das dritte Versprechen in den Wert 3 aufgelöst und zeigt diesen Wert an.

Da die „then“-Methode ein Versprechen zurückgibt, können wir Versprechen auf diese Weise miteinander verketten, um eine Reihe zu erstellen.

for-await-of

Eine andere Möglichkeit, eine Reihe von Promises in Reihe auszuführen, ist die Verwendung einer „for-await-of“-Schleife. Mit dieser Schleife können Sie das Schlüsselwort „await“ innerhalb der for-Schleife verwenden. Das Schlüsselwort „wait“ unterbricht die Ausführung des Codes, bis das Versprechen erfüllt ist.

Beispiel

Hier ist ein Beispiel -

<html>
<head>
   <title>Example- for-await-of</title>
</head>
<body>
   <script>
      async function runPromisesInSeries() {
         for await (const promise of [
            Promise.resolve(1),
            Promise.resolve(2),
            Promise.resolve(3),
         ]) {
               const result = await promise;
               document.write(result);
               document.write("<br>")
            }
         }
      runPromisesInSeries();
   </script>
</body>
</html>

In diesem Beispiel haben wir eine asynchrone Funktion, die eine „for-await-of“-Schleife enthält. Diese Schleife durchläuft eine Reihe von Versprechen. Für jedes Versprechen im Array warten wir darauf, dass das Versprechen erfüllt wird. Sobald das Versprechen erfüllt ist, wird der Wert angezeigt.

Bibliotheken verwenden

Wenn Sie mehr Funktionalität benötigen, als die native Promise-API bietet, können Sie Bibliotheken wie Bluebird oder Q verwenden: Diese Bibliotheken bieten zusätzliche Methoden für die Arbeit mit Promise.

Bluebird bietet beispielsweise eine „Map“-Methode, mit der Sie ein Array von Werten einem Array von Versprechen zuordnen und dann warten können, bis alle Werte erfüllt sind –

const Promise = require(&#39;bluebird&#39;);

Promise.map([1, 2, 3], x => {
   return Promise.resolve(x * 2);
}).then(results => {
   console.log(results); // [2, 4, 6]
});

Fazit

In diesem Artikel Wir haben etwas über Kontiguität in JavaScript gelernt. Verschiedene Möglichkeiten, eine Reihe von Versprechen auszuführen. Wir haben gesehen, wie man Promises mit der „then“-Methode verkettet, wie man „for-await-of“-Schleifen verwendet und wie man Bibliotheken wie Bluebird oder Q verwendet.

Das obige ist der detaillierte Inhalt vonWie führe ich ein bestimmtes Array von Versprechen kontinuierlich in JavaScript aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen