欢迎加我技术交流QQ群 :811956471
下面的代码涵盖了 async...await 结合 Promise使用方法,以及统一捕获错误最优方法
以下例子 公用的三个函数:
function getOne() {
return new Promise((resolve, reject) => {
reject("出错了1")
})
}
function getTwo() {
return new Promise((resolve, reject) => {
reject("出错了2")
})
}
function getThree() {
return new Promise((resolve, reject) => {
resolve("getThree3")
})
}
1、一般使用:
const test = async _ => {
const one = await getOne(false)
const two = await getTwo(false)
const three = await getThree(false)
}
test().catch(error => console.log(error)) //出错了1
以上方法有多个await 后面的await都会等前一个执行完了才会执行下一个,他们之间不存在继发关系造成请求时间的等待,影响用户体验
2、如果不存在继发关系可优化使用如下:
const test = async _ => {
const promises = [getOne(), getTwo(), getThree()]
const [one, two, three] = await Promise.all(promises)
const one = await getOne(false)
const two = await getTwo(false)
const three = await getThree(false)
}
test().catch(error => console.log(error)) //出错了1