в чем разница между использованием await promise all() и нескольких отдельных await в javascript

Аватар пользователя Ivan Gagarinov
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
Познакомьтесь с основами JavaScript бесплатно