Exercise 6: Promise.allSettled Implementation
Problem Statement
Create a function `allSettled(promises)` that waits for all promises to complete (both success/failure).
Example: allSettled([Promise.resolve(1), Promise.reject(2)]) => [{status: "fulfilled", value: 1}, {status: "rejected", reason: 2}]
Sample Output:
await allSettled([Promise.resolve(1), Promise.reject(2)]) => [{status: "fulfilled", value: 1}, {status: "rejected", reason: 2}]Solution
const allSettled = (promises) => {
return Promise.all(promises.map(p =>
Promise.resolve(p).then(value => ({status: "fulfilled", value}),
reason => ({status: "rejected", reason}))
));
};Explanation
Overall Goal:
- Sabhi promises complete hone ka wait karna (success/failure).
Real world:
- Multiple APIs: all results needed.
- Error handling: partial failures handle.