Назад к задачам
Junior — Senior
5

Создание функции, имитирующей Promise.allSettled

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать функцию allSettled(), которая воспроизводит поведение стандартного метода Promise.allSettled.

function allSettled(inputs) {}

allSettled([
  new Promise((resolve) => setTimeout(() => resolve(1), 1000)),
  Promise.reject(2),
  Promise.resolve(3),
]).then(console.log);

// [
//   { "status": "fulfilled", "value": 1 },
//   { "status": "rejected", "reason": 2 },
//   { "status": "fulfilled", "value": 3 }
// ]

Функция должна принимать массив промисов (или значений, совместимых с промисами) и возвращать новый промис, который завершится после того, как завершатся все переданные. В результате необходимо получить массив объектов, каждый из которых содержит поле status со значением "fulfilled" или "rejected" и соответствующее поле value или reason с результатом или причиной отклонения.