Last active
November 25, 2020 19:25
-
-
Save vipinrana/e90c7debd5ffc87d27d2fe9d550a4434 to your computer and use it in GitHub Desktop.
Promise.race vs Promise.any
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Promise.race will first settled either fulfilled or rejected from the iterable object | |
* | |
* Promise.any find the first fulfilled without concern of reject promise from the iterable object. | |
* If all are rejected promise then it will result an AggregateError. | |
* | |
*/ | |
// On passing first resolve and second reject promise | |
// output: Fulfilled 1 | |
Promise.race([ | |
Promise.resolve(1), | |
Promise.reject(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); | |
// output: Fulfilled 1 | |
Promise.any([ | |
Promise.resolve(1), | |
Promise.reject(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); | |
// On passing first reject and second resolve promise | |
// output: error ocurred for 1 | |
Promise.race([ | |
Promise.reject(1), | |
Promise.resolve(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); | |
// output: Fulfilled 2 | |
Promise.any([ | |
Promise.reject(1), | |
Promise.resolve(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); | |
// On passing all reject promise | |
// output: error ocurred for 1 | |
Promise.race([ | |
Promise.reject(1), | |
Promise.reject(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); | |
// output: error ocurred for AggregateError: All promises were rejected | |
Promise.any([ | |
Promise.reject(1), | |
Promise.reject(2) | |
]) | |
.then(data => console.log(`Fulfilled ${data}`)) | |
.catch(error => console.log(`error ocurred for ${error}`)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment