Overview
Implement promiseAllSettled(promises) that waits for all promises and returns their outcomes as {status, value} or {status, reason}.
Examples
await promiseAllSettled([Promise.resolve(1), Promise.reject('err')]);
// [{status:'fulfilled',value:1}, {status:'rejected',reason:'err'}]Solution
Reveal solution
function promiseAllSettled(promises) {
return Promise.all(
Array.from(promises).map(p =>
Promise.resolve(p)
.then(value => ({ status: 'fulfilled', value }))
.catch(reason => ({ status: 'rejected', reason }))
)
);
}promise-all-settled.js
Promise.allSettled
mediumcodingJavaScriptPromises
Overview
Implement promiseAllSettled(promises) that waits for all promises and returns their outcomes as {status, value} or {status, reason}.
Examples
await promiseAllSettled([Promise.resolve(1), Promise.reject('err')]);
// [{status:'fulfilled',value:1}, {status:'rejected',reason:'err'}]Solution
Reveal solution
function promiseAllSettled(promises) {
return Promise.all(
Array.from(promises).map(p =>
Promise.resolve(p)
.then(value => ({ status: 'fulfilled', value }))
.catch(reason => ({ status: 'rejected', reason }))
)
);
}NameTopicDifficulty
103 of 103 problems