Ich habe eine Funktion aus einer Bibliothek, die ein Versprechen zurückgibt. Ich muss diese Funktion mehrmals ausführen, aber jede Iteration muss warten, bis die vorherige Aufgabe erledigt ist.Wie synchron lösen Sie eine Kette von es6 Versprechen?
Meine Vermutung war, dass ich dies tun könnte:
promiseReturner(1)
.then(promiseReturner(2)
.then(promiseReturner(3)
.then(...)
, die unter Verwendung einer Schleife vereinfacht werden könnte:
var p = Promise.resolve();
for (var i=1; i<=10; i++) {
p = p.then(promiseReturner(i));
}
jedoch
, wenn ich das jedes Versprechen in der Kette zu tun bei der ausgeführt wird, gleichzeitig, anstelle von einer nach dem anderen als .then()
scheint zu implizieren. Offensichtlich vermisse ich etwas Grundlegendes über Versprechen - aber nachdem ich mehrere Tutorials und Blogposts gelesen habe, bin ich immer noch verloren.
Here's a codepen I wrote up to demonstrate my attempt.
Does 'promiseReturner (n) "ein Versprechen abgeben oder eine Versprechen zurückgebende Funktion machen? – Bergi