美文网首页
async&await配合使用promise的一个业务场景

async&await配合使用promise的一个业务场景

作者: 微志异 | 来源:发表于2019-05-05 10:54 被阅读0次

    在前端编程中,会遇到这样一个场景:我们需要发送多个请求,后面请求的发送总是需要依赖上一个请求返回的数据。对于这个问题,我们既可以用的Promise的链式调用来解决,也可以用async/await来解决,然而后者会更简洁些。
    使用Promise链式调用来处理:

    function request(time) {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(time)
            }, time)
        })
    }
    
    request(500).then(result => {
        return request(result + 1000)
    }).then(result => {
        return request(result + 1000)
    }).then(result => {
        console.log(result)
    }).catch(error => {
        console.log(error)
    }) 
    

    使用async/await的来处理:

    function request(time) {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(time)
            }, time)
        })
    }
    
    async function getResult() {
        let p1 = await request(500)
        let p2 = await request(p1 + 1000)
        let p3 = await request(p2 + 1000)
        return p3
    }
    
    getResult().then(result => {
        console.log(result)
    }).catch(error => {
        console.log(error)
    })
    

    相对于使用then不停地进行链式调用, 使用async/await会显的更加易读一些。

    相关文章

      网友评论

          本文标题:async&await配合使用promise的一个业务场景

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