
获得徽章 0
- 聊聊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 - 聊聊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,
下面来看看当我们在then函数定义拒绝的回调时的表现:
然后来看看Promise.race的表现(分别是then函数里不定义和定义reject时候的回调):展开评论点赞