用async和await改造项目对异步调用接口的处理

本文探讨如何利用async和await改造项目中异步调用接口的方式,包括并行和继发两种场景。通过示例展示了如何在没有依赖关系的异步操作中同时触发请求,以及如何使用Promise.all实现并发请求。此外,还讲解了在有先后顺序的异步请求中如何运用await进行控制。
摘要由CSDN通过智能技术生成

1、不存在继发关系的异步操作,同时触发

例1:

let [foo, bar] = Promise.all([getFoo(), getBar()]);

例2:

let fooPromise = getFoo();
let barPromise = getBar();
let foo = await fooPromise();
let Bar = await barPromise();

2、向多个链接发起请求,并发形式(建议用Promise.all)

例1:

async function dbFun() {
    const dbUrl = [{}, {}, {}];
    let promises = dbUrl.map(url => {
        return db.get(url)
    })
    let result = []
    for(let promise of promises) {
        result.push(await promise)
    }
    console.log(result)
}
dbFun().then()

例2 用Promise.all:

async function dbFun() {
    const dbUrl = [{}, {}, {}];
    let promises = dbUrl.map(url => {
        return db.get(url)
    })
    let result = await Promise.all(promises)
    console.log(result)
}
dbFun().then()

3、向多个链接发起请求,继发形式

例:

async function dbFun() {
    const dbUrl = [{}, {}, {}];
    for(let url of dbUrl) {
        await db.get(url)
    }
}
dbFun().then()

要领:若要并发执行,则要先让所有异步操作执行,进入pending状态,然后等待await执行一同。
继发形式则直接去遍历执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值