在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 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
JavaScript中的Document文档对象
Jan 16 Javascript
JQuery 操作/获取table具体代码
Jun 13 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
jQuery实现鼠标点击弹出渐变层的方法
Jul 09 Javascript
JS弹出对话框实现方法(三种方式)
Dec 18 Javascript
Javascript之String对象详解
Jun 08 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
深入剖析Node.js cluster模块
May 23 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
JS实现可用滑块滑动的缓动图代码
Sep 01 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
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
JS分页的实现(同步与异步)
2017/09/16 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
python的keyword模块用法实例分析
2015/06/30 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python抽取指定url页面的title方法
2018/05/11 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
4s店市场专员岗位职责
2014/04/09 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
师德师风个人整改措施
2014/10/27 职场文书
简历中自我评价范文
2015/03/11 职场文书
网吧温馨提示
2015/07/17 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python