11. Реализация Promise.all

Средне
promiseasyncconcurrency

Реализуйте собственную версию Promise.all, которая принимает массив промисов и возвращает промис с массивом результатов.

Каждый способ должен быть реализован независимо в своём контейнере:

  1. Резолвится массивом результатов в исходном порядке
  2. Реджектится при первой ошибке
  3. Пустой массив → пустой массив
  4. Обработка непромисных значений

Реализуйте функцию promiseAll(promises), которая: - Принимает массив промисов (или значений) - Возвращает промис, который резолвится массивом результатов в исходном порядке - Если любой промис реджектится — результат тоже реджектится с первой ошибкой - Пустой массив — сразу резолвится пустым массивом - Непромисные значения оборачиваются автоматически

Примеры

Пример 14
Вход:
promiseAll([Promise.resolve(1), Promise.resolve(2)])
Ожидаемый результат:

[1, 2]

Подсказка:

Все промисы резолвятся — результат содержит значения в исходном порядке

Ограничения

  • Не использовать Promise.all или Promise.allSettled
0% принято
0 решений