
获得徽章 17
- 聊聊Promise.all()接收的Promise对象数组当有Promise对象 rejected:
(function() {
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject("111")
}, 200)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("222")
}, 400)
})
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("333")
}, 600)
})
Promise.all([p1, p2, p3]).then((value) => {
console.log('all', value)
}, (err) => {
console.log('allErr', err)
})
Promise.race([p1, p2, p3]).then((value) => {
console.log('race', value)
}, (err) => {
console.log('raceErr', err)
})
Promise.all([p1,p2,p3]) --> p1 rejected --> rejected的Promise
Promise.all([p1,p2,p3]) --> p1 rejected --> rejected的Promise
then函数的rejected的回调不定义则抛出错误,定义则rejected的Promise 被正确捕获.展开95