Ich möchte diesen Punkt klarstellen, da die Dokumentation darüber nicht zu klar ist.
Q1: Ist die Promise.all(iterable)
Verarbeitung aller Versprechungen der Reihe nach oder parallel? Oder genauer gesagt, ist es das Äquivalent zu verketteten Versprechungen wie
p1.then(p2).then(p3).then(p4).then(p5)....
oder ist es eine andere Art von Algorithmus , bei dem alle p1
, p2
, p3
, p4
, p5
etc. zur gleichen Zeit (parallel) genannt werden und die Ergebnisse werden, sobald alle resolve (oder ein Spuck) zurück?
F2: Wenn Promise.all
parallel ausgeführt wird, gibt es eine bequeme Möglichkeit, eine iterierbare Sequenz sequentiell auszuführen?
Hinweis : Ich möchte nicht Q oder Bluebird verwenden, sondern alle nativen ES6-Spezifikationen.
Promise.all
sie parallel ausgeführt werden.
node.js
und io.js
da ich es hier benutze. Also ja, die V8-Implementierung, wenn Sie so wollen.
Promise.all
.
new Promise(a).then(b); c();
a wird zuerst ausgeführt, dann c, dann b. Es ist nicht Promise.all, das diese Versprechen ausführt, sondern nur, wenn sie gelöst werden.