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)
})