Как реализовать Promise.all?

Middle
299 просмотров
AFK Offer AI

function promiseAll(promises) { return new Promise((resolve, reject) => { const results = []; let count = 0; if (promises.length === 0) return resolve([]); promises.forEach((p, i) => { Promise.resolve(p).then(value => { results[i] = value; if (++count === promises.length) resolve(results); }).catch(reject); }); }); }. Ключевые моменты: results[i] сохраняет порядок, count считает завершённые, первый reject отклоняет весь результат, Promise.resolve(p) для не-промисов, пустой массив — resolve сразу.

Следующий вопрос

Как реализовать dark mode toggle?