Wie Sie sich synchron, lösen eine Kette von es6 verspricht?

Habe ich eine Funktion aus einer Bibliothek, die eine Zusage zurückgibt. Ich muss zur Ausführung dieser Funktion mehrere Male, aber jeder iteration muss warten, bis der Vorherige Vorgang abgeschlossen ist.

Meine Vermutung war, dass ich dies tun könnte:

promiseReturner(1)
  .then(promiseReturner(2)
  .then(promiseReturner(3)
  .then(...)

Könnte vereinfacht mit einer Schleife:

var p = Promise.resolve();
for (var i=1; i<=10; i++) {
  p = p.then(promiseReturner(i));
}

Jedoch, wenn ich dies tun jedes Versprechen in der Kette ausgeführt wird, zur gleichen Zeit, anstatt eine nach der anderen als .then() scheint zu implizieren. Klar fehlt mir etwas grundlegendes über das, was Sie Versprechen-aber nach der Lektüre einige tutorials und blog-posts ich bin immer noch verloren.

Hier ist ein codepen ich schrieb, um zu demonstrieren, dass mein Versuch.

  • Tut promiseReturner(n) Gegenzug ein Versprechen oder eine Verheißung-Rückkehr-Funktion?
InformationsquelleAutor Ben Davis | 2015-02-23
Schreibe einen Kommentar