Promise.allSettled Polyfill
by Varun Sukheja
HTML
<script src="https://cdn.jsdelivr.net/gh/eu81273/jsfiddle-console/console.js"></script>
JavaScript
Promise.allSettled = function(promises) {
let mappedPromises = promises.map((p) => {
return p
.then((value) => {
return {
status: 'fulfilled',
value
};
})
.catch((reason) => {
return {
status: 'rejected',
reason
};
});
});
return Promise.all(mappedPromises);
};
let promises = [
Promise.resolve(2),
Promise.reject('This is rejected'),
new Promise((resolve, reject) => setTimeout(resolve, 400, 67)),
];
Promise.allSettled(promises).then((result) => console.log(result));