美文网首页
async...await 结合 Promise使用

async...await 结合 Promise使用

作者: 不忘初心_d | 来源:发表于2019-07-08 17:30 被阅读0次

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

相关文章

网友评论

      本文标题:async...await 结合 Promise使用

      本文链接:https://www.haomeiwen.com/subject/lzzohctx.html