The Promise.allSettled() method returns a promise that resolves after all of the given promises have either fulfilled or rejected, with an array of objects that each describes the outcome of each promise.
const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) => setTimeout(reject, 100, 'foo'));
const promises = [promise1, promise2];
Promise.allSettled(promises).
then((results) => results.forEach((result) => console.log(result.status)));
// expected output:
// "fulfilled"
// "rejected"
For example, look at the dummy data given below
I, want to make an API call to get the client's details by clientId
[
{
bed : 'bed name',
clientId : '1548765'
},
{
bed : 'bed name2',
clientId : '1548766'
}
]
For each client, I have to make an API call of getClientById
and I don't want my program to proceed further until details for all the clients is available
// In this case what I can do is
Promise.allSettled(
data.map(e=> {
return CALL_API(`client/${e.clientId}` , 'get')
})
).then(responseArr => {
responseArr.forEach(res=>{
console.log(res);
// res.status & res.value
})
})
Top comments (0)