FrontendDeveloper.in

ECMAScript question detail

promise.any

The new promise.any method takes multiple promises and resolves to the value of the first promise which is successfully fulfilled.

let promise1 = new Promise((resolve) => setTimeout(resolve, 100, 'Resolves after 100ms'));
let promise2 = new Promise((resolve) => setTimeout(resolve, 200, 'Resolves after 200ms'));
let promise3 = new Promise((resolve, reject) => setTimeout(reject, 0) );

let promises = [promise1, promise2, promise3];

 Promise.any(promises)
.then( value => console.log(value)); // Resolves after 100ms

In case none of the promises resolved then it throws AggregateError exception.

(async () => {
try {
const output = await Promise.any([
Promise.reject('Error 1'),
Promise.reject('Error 2'),
Promise.reject('Error 3'),
]);
console.log(`Output: ${output}`);
} catch (err) {
console.log(`Error: ${err.errors}`);
}
})();
// Error: Error1,Error2,Error3
Back to all ECMAScript questions
Get LinkedIn Premium at Rs 399