ES6 Promise-5

Demo how to use Promise.all 和 Promise.race

by Po-Jung Chen

JavaScript

/**
 * Use Promise.all('<array'>) 和 Promise.race('<array>')
 * Promise.all 會等到所有 Promise 都 resolve 後才執行。
 * Promise.race 只要第一個 Promise 被 resolve 後就執行。
 **/

let resolvePromise = new Promise((resolve, reject) => {
  setTimeout(function() {
    resolve('resolve')
  }, 1000)
})

let rejectPromise = new Promise((resolve, reject) => {
  setTimeout(function() {
    reject('reject')
  }, 1000)
})


// This will reject, because not all Pormise being resolved
Promise.all([resolvePromise, rejectPromise])
  .then((success) => {
    console.log('In Promise.all', success)
  })
  .catch((reject) => {
    console.log('In Promise.all', reject)
  })

// This will resolve, because the first Promise is resolve
Promise.race([resolvePromise, rejectPromise])
  .then((success) => {
    console.log('In Promise.race', success)
  })
  .catch((reject) => {
    console.log('In Promise.race', reject)
  })