promise allSettled
by Artem
JavaScript
'use strict'
const allSettled = promiseArr => {
let chain = Promise.resolve([]);
for (let p of promiseArr) {
chain = chain.then((prev) => {
return p
.then(v => [...prev, v])
.catch(() => [...prev, null]);
});
}
return chain;
};
allSettled([
Promise.resolve(1),
Promise.resolve(2),
Promise.reject(3),
Promise.resolve(5),
Promise.reject(7)
]).then(arr => {
console.log(arr);
});