Я хотів би уточнити цей момент, оскільки документація щодо нього не надто чітка;
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, який виконує ці обіцянки, він просто обробляє, коли вони вирішуються.