Я хотів би уточнити цей момент, оскільки документація щодо нього не надто чітка;
Q1: Чи Promise.all(iterable)
обробка всіх обіцянок послідовно чи паралельно? Або, точніше, це еквівалент виконання обіцяних ланцюжків обіцянок
p1.then(p2).then(p3).then(p4).then(p5)....
або це якийсь - то інший вид алгоритму , де все p1
, p2
, p3
, p4
, p5
і т.д. називають одночасно (паралельно) і результати повертаються , як тільки все рішучістю (або одного шлюбу)?
Q2: Якщо Promise.all
працює паралельно, чи є зручний спосіб запускати ітерабельний послідовно?
Примітка . Я не хочу використовувати Q або Bluebird, але всі рідні специфікації ES6.
Promise.all
виконує їх паралельно.
node.js
і io.js
тому це я тут використовую. Отже, так, реалізація V8, якщо ви хочете.
Promise.all
.
new Promise(a).then(b); c();
a виконується спочатку, потім c, потім b. Це не Promise.all, який виконує ці обіцянки, він просто обробляє, коли вони вирішуються.