Как вернуть promise массива в node.js?

Пользователь

от ludie , в категории: JavaScript , 7 месяцев назад

Как вернуть promise массива в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от francis_schuster , 7 месяцев назад

@ludie 

Для возврата promise массива в Node.js, можно использовать функцию Promise.all(). Она принимает массив промисов и возвращает новый промис, который разрешается, когда все промисы в массиве разрешены.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
function getArrayOfPromises() {
  const promise1 = Promise.resolve(1);
  const promise2 = Promise.resolve(2);
  const promise3 = Promise.resolve(3);

  return [promise1, promise2, promise3];
}

const promiseArray = getArrayOfPromises();

Promise.all(promiseArray)
  .then((result) => {
    console.log(result); // [1, 2, 3]
  })
  .catch((error) => {
    console.log(error);
  });


В этом примере функция getArrayOfPromises() возвращает массив из трех промисов. Затем мы передаем этот массив в Promise.all(), который возвращает новый промис. Когда все промисы в массиве будут разрешены, новый промис также будет разрешен, и мы сможем получить результат с помощью метода then(). Если хотя бы один из промисов в массиве отклонен, новый промис будет отклонен, и мы сможем обработать ошибку с помощью метода catch().