On this simple trick, I'll show you how to give an array of promises and only return after all either fulfilled or rejected.
const promises = [
Promise.resolve({ name: 'Mikkel' }),
Promise.resolve({ name: 'Jonas' }),
Promise.resolve({ name: 'Adam' })
];
Promise.allSettled(promises).then(results => {
console.log('All Promises Settled', results);
/**
'All Promises Settled' [
{ status: 'fulfilled', value: { name: 'Mikkel' } },
{ status: 'fulfilled', value: { name: 'Jonas' } },
{ status: 'fulfilled', value: { name: 'Adam' } }
]
**/
});
Note: You can use this feature with babel or another compiler enabling the ES2020 features.
Did you like it? Comment, share! β¨
Top comments (2)
How does it compare to Promise.all() ?
The difference between
Promise.all
andPromise.allSettled
such thePromise.all
when receiving a reject will stop the execution and thePromise.allSettled
will execute all promises and return the status and value received independent if rejected or fulfilled.