Sobes.tech
Back to tasks
Junior — Senior
30

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

Get help with live coding in real time with Sobes Copilot
Task condition

Необходимо реализовать функцию 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 с результатом или причиной отклонения.