Promise.any()
Promise.any() takes an iterable of Promise objects. It returns a single promise that fulfills as soon
as any of the promises in the iterable fulfills, with the value of the fulfilled promise. If no
promises in the iterable fulfill (if all of the given promises are rejected), then the returned
promise is rejected with an AggregateError, a new subclass of Error that groups together
individual errors.
const promise1 = Promise.reject(0);
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'quick'));
const promise3 = new Promise((resolve) => setTimeout(resolve, 500, 'slow'));
const promises = [promise1, promise2, promise3];
Promise.any(promises).then((value) => console.log(value));
// expected output: "quick"
const promise1 = () => new Promise((resolve,reject) => {
setTimeout(() => {
resolve(1)
},100)
})
const promise2 = () => new Promise((resolve,reject) => {
reject(2)
})
const promise3 = () => new Promise((resolve,reject) => {
setTimeout(() => {
resolve(3)
})
})
Promise.any([promise1(),promise2(),promise3()])
.then((val) => {
console.log(val) // 3
})
.catch((err) => {
console.log(err)
})
Comments
Post a Comment