в чем разница между использованием await promise all() и нескольких отдельных await в javascript
Ответы
Ivan Gagarinov
27 ноября 2024
Promise.all()
принимает массив промисов и возвращает новый промис, который будет выполнен, когда все промисы в массиве будут выполнены. Это подход позволяет выполнять промисы параллельно, а не последовательно:
async function fetchData() {
const results = await Promise.all([
fetch('/api/data1'),
fetch('/api/data2'),
fetch('/api/data3'),
]);
// results будет массивом ответов
const data = await Promise.all(results.map(result => result.json()));
return data;
}
Когда вы используете несколько отдельных await
, вы вызываете каждый промис последовательно, дожидаясь завершения каждого перед началом следующего. Вот пример:
async function fetchData() {
const result1 = await fetch('/api/data1');
const result2 = await fetch('/api/data2');
const result3 = await fetch('/api/data3');
const data1 = await result1.json();
const data2 = await result2.json();
const data3 = await result3.json();
return [data1, data2, data3];
}
0
0