在JS循环中使用async/await的方法


Posted in Javascript onOctober 12, 2018

async / await是ES7的重要特性之一,也是目前社区里公认的优秀异步解决方案。目前,async / await这个特性已经是stage 3的建议,可以看看TC39的进度,本篇文章将分享在JS循环中使用async/await的方法.

在开发maty.js时,遇到一个数组任务,数组项是内部异步执行的函数,期望是同步依次执行每项函数,每项函数执行完本身的异步任务后,继续下一项。

刚开始单纯使用map来循环执行,并且await每项函数。如下所示:

starters.map(async (fn, i)=> {
 console.log('++++++++++: ', i)
 await fn(ctx);
});

结果是依次先输出了索引i,而不是阻塞每次循环,按期望执行。

搬出Google大法,可以看出对在 for…of 循环语法中使用await是有效的。

for (const fn of starters) {
 await fn(ctx);
}

同时文章中指出使用Promise.all,是无法解决当前问题的,因为all方法是并行运行的。很奇怪为什么没有串行执行的原生方法。

总结

以上所述是小编给大家介绍的在JS循环中使用async/await的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript脚本调试方法小结
Nov 24 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
js简单实现竖向tab选项卡的方法
May 04 Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
JS操作xml对象转换为Json对象示例
Mar 25 Javascript
jQuery 改变P标签文本值方法
Feb 24 jQuery
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
webstorm中vue语法的支持详解
May 09 Javascript
代码实例ajax实现点击加载更多数据图片
Oct 12 #Javascript
vue项目环境变量配置的实现方法
Oct 12 #Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 #Javascript
原生JS实现轮播图效果
Oct 12 #Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 #Javascript
Element Input组件分析小结
Oct 11 #Javascript
element el-input directive数字进行控制
Oct 11 #Javascript
You might like
浅析十款PHP开发框架的对比
2013/07/05 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
js计算页面刷新的次数
2009/07/20 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
理解javascript闭包
2015/12/15 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
通俗讲解python 装饰器
2020/09/07 Python
生物技术毕业生自荐信
2013/10/23 职场文书
运动会广播稿150字
2014/02/19 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
一个都不能少观后感
2015/06/04 职场文书
文艺演出主持词
2015/07/01 职场文书
银行求职信范文
2019/05/13 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫