Можно ли заменить Promise.all на async await?
Есть массив функций 'arr', которые возвращают промисы, нужно что бы запросы в этих функциях выполнялись параллельно, и когда все функции выполнятся, обработать результат их работы, самое логичное, это кончено Promise.all(arr).then((data) => { обработка результата })
Но мне стало любопытно, можно ли добиться такого же эффетка но без Promise.all, а использую только async await при работе с массивом 'arr' ?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Насколько я понимаю, это эквиваленты:
const arr = [
() => Promise.resolve(1),
() => Promise.resolve(2),
() => Promise.resolve(3),
];
Promise.all(arr.map(f => f()))
.then((data) => { console.log(data); });
const arr = [
() => Promise.resolve(1),
() => Promise.resolve(2),
() => Promise.resolve(3),
];
(async function main() {
const data = [];
for await (const result of arr.map(f => f())) {
data.push(result);
}
console.log(data);
})();