async awit 实现axios继发与并发
在使用async awit之前先确定项目支不支持(不支持报 regeneratorRuntime is not defined)
使用webpack搭建的项目可使用 这里 提供webpack配置支持
- 使用babel-preset-stage-3、 babel-polyfill 或 babel-plugin-transform-runtime 注意babel v6、v7版本配置稍有不同
继发
//使用async awit
asyncPrint = async () => {try {const t1 = await http.get('demandUser/getUserInfo'); //http为axios实例const t2 = await http.post('buy/refund1', { ordernum: t1.num });const t3 = await http.post('buy/refund2', { ordernum: t2.num });}catch (err) {console.log(err);}
};//不使用sync awit print = () => {http.get('demandUser/getUserInfo').then((t1) => {http.post('buy/refund1', {ordernum: t1.num}).then((t2) => {http.post('buy/refund2', {ordernum: t2.num}).then((data) => {}).catch((err) => {})}).catch((err) => {})});};
并发
asyncPrint = async () => {try {let t1 = http.get('demandUser/getUserInfo');let t2 = http.post('buy/refund1', { ordernum: t1.num });let t3 = await http.post('buy/refund2', { ordernum: t2.num });await t1;await t2;await t3;}catch (err) {console.log(err);}};print = () => {http.get('demandUser/getUserInfo').then((t1) => {}).catch((err) => {});http.post('buy/refund1',{}).then((data)=>{}).catch((err) => {});http.post('buy/refund2',{}).then((data)=>{}).catch((err) => {});};
这里明显使用async awit在处理多次请求时代码量更少且更像同步操作
异步方式参考 阮一峰 async
async awit 实现axios继发与并发相关推荐
- javascript async awit 和 Promise 概述
async awit概述 async函数可能包含0个或者多个await表达式.await表达式会暂停整个async函数的执行进程并出让其控制权,只有当其等待的基于promise的异步操作被兑现或被拒绝 ...
- axios.all()解决并发请求的问题
axios.all()解决并发请求的问题 参考文章: (1)axios.all()解决并发请求的问题 (2)https://www.cnblogs.com/chao202426/p/12068260. ...
- async awit 异步调用的理解及应用
async awit 异步调用的理解及应用 async 是"异步"的简写,而 await 可以认为是 async wait 的简写.所以应该很好理解 async 用于申明一个 fu ...
- promise 与async awit的写法
async awit 是 Generator 的一个语法糖 如有不对,望指出
- 前后端交互(Promise、fetch、axios、async/awit用法)
1.Promise概述 Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,从它可以获取异步操作的消息. 1.2Promise的好处: 1.2.1. 可以避免多层异步调用嵌套 ...
- HTML5技术分享 ES2017继发与并发
大家都知道,async函数的返回值是 Promise 对象,这比 Generator 函数的返回值是 Iterator 对象方便多了.你可以用then方法指定下一步的操作. 进一步说,async函数完 ...
- 使用async await 封装 axios
es6 的promise 逐步解决了层层回调的问题,es8的async await让异步变成了同步的写法,在vue中,可以通过封装axios,使得所有的请求都可以使用同步写法,同时处理错误信息等,可以 ...
- asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
python 一直在进行并发编程的优化, 比较熟知的是使用 thread 模块多线程和 multiprocessing 多进程,后来慢慢引入基于 yield 关键字的协程. 而近几个版本,python ...
- Node.js async/awit
1:NodeJS 是什么 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. No ...
最新文章
- vs2010 使用vs online账号 需要安装的插件
- Win2008支持PowerShell设置方法
- Linux的vim编辑器中的翻页命令
- Linux技巧:自动挂载UDF光盘的技巧
- 字符串逆序(信息学奥赛一本通-T1162)
- 超大规模数据集类的创建
- 苹果本周四将发布 OS X Yosemite 公开测试版
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
- ResultSet用法集锦
- 关于AI拍照搜题的一些想法
- 云播 Android,云播放(Air Playit)android版
- 国二c语言和南开100题,全国计算机二级C语言题库_南开100题.doc
- 旧手机改造成web服务器并实现内网穿透
- 无卷积结构(那就纯ransformer)的参考图像分割:ReSTR: Convolution-free Referring Image Segmentation Using Transformers
- 方框如何打勾、打叉与涂黑(转)
- 抖音数字人主播app
- 皮卡丘(pikachu)不安全的文件下载
- npm 配置项registry修改为淘宝镜像
- 男人的快乐不就来了?
- JSON decoding error: Invalid UTF-8 start byte 0xb6