Skip to content

Instantly share code, notes, and snippets.

@evaporei
Created October 8, 2018 13:36
Show Gist options
  • Save evaporei/057344fb9c1666268d144177f971c1e9 to your computer and use it in GitHub Desktop.
Save evaporei/057344fb9c1666268d144177f971c1e9 to your computer and use it in GitHub Desktop.
How promise.all rejection works
const resolvable200 = () => new Promise((resolve, reject) => {
console.log('resolvable200 begin')
resolve(200)
console.log('resolvable200 end')
})
const rejectable400 = () => new Promise((resolve, reject) => {
console.log('rejectable400 begin')
reject(400)
console.log('rejectable400 end')
})
const rejectable500 = () => new Promise((resolve, reject) => {
console.log('rejectable500 begin')
reject(500)
console.log('rejectable500 end')
})
Promise.all([resolvable200(), rejectable400(), rejectable500()])
.then((data) => {
console.log('then')
console.log('data', data)
})
.catch((error) => {
console.log('catch')
console.log('error', error)
})
/*
Only the first error get's on `catch`, but every promise is executed till it's end.
Logs:
➤ node promise.all.js 10:34:01
resolvable200 begin
resolvable200 end
rejectable400 begin
rejectable400 end
rejectable500 begin
rejectable500 end
catch
error 400
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment