Skip to content

Instantly share code, notes, and snippets.

@vipinrana
Last active November 25, 2020 19:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vipinrana/e90c7debd5ffc87d27d2fe9d550a4434 to your computer and use it in GitHub Desktop.
Save vipinrana/e90c7debd5ffc87d27d2fe9d550a4434 to your computer and use it in GitHub Desktop.
Promise.race vs Promise.any
/*
* 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