Я хотел бы прояснить этот момент, так как документация не слишком ясна по этому поводу;
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();
выполняется первым, а затем с, то б. Это не Promise.all, который выполняет эти обещания, он просто обрабатывает, когда они разрешаются.