Контекст
Promise.all ждёт, пока все входные промисы выполнятся, и отдаёт массив результатов в порядке входа. Любой reject — весь all сразу reject.
Подробности
Метод не запускает операции и не отменяет оставшиеся при ошибке — промисы создаёте вы сами; для отмены — AbortController.
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve) => {
setTimeout(resolve, 100, 'foo');
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
Непромисные значения трактуются как уже fulfilled.
Итог
all — параллельное «все успешны или fail-fast»; порядок результатов = порядок входа.