async...await 结合 Promise使用

2019-07-08  本文已影响0人  不忘初心_d

欢迎加我技术交流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
上一篇下一篇

猜你喜欢

热点阅读