美文网首页
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的一个业务场景

    在前端编程中,会遇到这样一个场景:我们需要发送多个请求,后面请求的发送总是需要依赖上一个请求返回的数据。对于这个问...

  • 10.Promise函数

    Promise.resolve()与new Promise(r => r(v))promise的使用场景promi...

  • promise axios配合使用

    调用

  • Promise

    1.es6为什么会出现promise/解决了什么问题 2.promise的使用场景 3.promise的使用方法 ...

  • 2018-08-22 关于Promise

    Promise在new实例化时会立即执行,所以所有的Promise都应该封装在一个function中: 使用场景:...

  • promise和yield配合使用

    延迟几秒执行function mySleep(s) {return new Promise(resolve => ...

  • 如何讲清楚async和await?

    async和await要搭配Promise使用, 它进一步极大的改进了Promise的写法 来看一个简单的场景: ...

  • promise 解决回调地狱。

    ES6的promise的语言标准。promise/A+规范2.如何使用3.场景。 promiseObj.then(...

  • Promise 静态 API 的使用方法

    Promise.all 使用场景:假设我们希望许多 Promise 并行执行,并等待它们都准备好。 一个实际例子是...

  • 理解promise

    之前在业务开发中使用promise时,大部分情况都是声明一个返回promise实例的函数,调用时在then方法里传...

网友评论

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

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