用async和await改造项目对异步调用接口的处理
2019-01-21 17:21
645 查看
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执行一同。
继发形式则直接去遍历执行。
相关文章推荐
- 关于Promise,Generator,async / await 对异步的处理
- asp.net ashx 一般处理程序 使用async await异步直接 copy可用哦
- 前端项目中常用es6知识总结 -- Async、Await让异步美如画
- .NET 4.5 使用async和await关键字调用异步方法
- 用 async/await 来处理异步
- async/await来处理异步
- NodeJs通过async/await处理异步的方法
- 使用 AsyncCallback 处理异步调用
- 异步调用接口返回大量数据,如何处理才能使页面渲染时不卡?
- springMVC项目异步错误处理请求Async support must be enabled on a servlet and for all filters involved in async
- .NET异步操作学习之一:Async/Await中异常的处理
- 看看async,await 是如何简化异步的调用WCF!
- .NET/C# 使用async和await关键字调用异步方法
- Asp.net Core 异步调用 Task await async 的梳理
- 已经决定半年后继续这个项目. JavaScript同步调用异步的处理方式也确定了下来.
- 使用AsyncCallback处理异步调用
- 【转】.NET 4.5 使用async和await关键字调用异步方法
- 终极异步解决方案async,await以及异步并发处理方案
- C# 异步调用之async及await关键字
- async await 同步方法调用异步方法死锁