在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 相关文章推荐
Jquery 常用方法经典总结
Jan 28 Javascript
IFrame跨域高度自适应实现代码
Aug 16 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
isset和empty的区别
2007/01/15 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
python列表去重的二种方法
2014/02/14 Python
Python操作串口的方法
2015/06/17 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python2与python3共存问题的解决方法
2018/09/18 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
劳资人员岗位职责
2013/12/19 职场文书
20岁生日感言
2014/01/13 职场文书
违反课堂纪律检讨书
2014/01/19 职场文书
中学生运动会口号
2014/06/07 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
感谢信怎么写
2015/01/21 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang