前言
在工作中当我们的项目来到一个新的页面需要发多个请求,而这些请求的数据又毫不相干时,我们可以采取并发请求的方式。
目前并发请求主要有Promise.all和axios.all两种方式,但是返回使用all请求时,假如某一个接口返回报错,那么all就是直接catch中返回了,并不会进then中。
会在catch中直接打印出 let p3 = Promise.reject('error')
那么.........我就先使用Promise.all解一波 哈哈哈哈
在Promise.all中对请求数组先map一波,把item的请求逐一返回
Promise.all(
[p1, p2, p3, p4, p5].map(item => {
return item.then(res => {
return res
}).catch(err => {
return err
})
})
).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
下图是返回结果:
还可以使用Promise.allSettled
Promise.allSettled([p1, p2, p3, p4, p5])
.then(results => {
console.log(results)
})
下图是返回结果:
简单记录一下,怕自己没脑子又忘了.........