/
Вопросы и ответы
/
JavaScript
/

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

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

2 years ago

Nikolai Gagarinov

Ответы

0

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];
}

a year ago

Ivan Gagarinov

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845