Promise.all find rejected and resolved
Findling the promises which resolved and which rejected
by Varun Sukheja
HTML
<script src="https://cdn.jsdelivr.net/gh/eu81273/jsfiddle-console/console.js"></script>
JavaScript
const promise1 = Promise.resolve('promise-1');
const promise2 = Promise.reject('promise-2');
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, '100', 'promise-3');
});
/* Promises array */
const promises = [promise1, promise2, promise3];
/* This does the wonder */
const mappedPromises = promises.map((p, i) => {
return p
.then((value) => ({
status: 'resolved',
value,
index: i
}))
.catch((reason) => ({
status: 'rejected',
reason,
index: i
}));
});
/* Using Promise.all() as usual */
Promise.all(mappedPromises)
.then(
(results) => {
/* Filtering resolved promises */
const resolved = results.filter(result => result.status === 'resolved');
console.log('Resolved promises are:-');
console.log(resolved);
/* Filtering rejected promises */
const rejected = results.filter(result => result.status === 'rejected');
console.error('Rejected promises are:-');
console.error(rejected);
})
.catch(error => console.error(error));