在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本身的局限性 别让javascript做太多事
Mar 23 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
关于微信小程序bug记录与解决方法
Aug 15 Javascript
Three.js中矩阵和向量的使用教程
Mar 19 Javascript
微信小程序日历弹窗选择器代码实例
May 09 Javascript
微信小程序 确认框的实现(附代码)
Jul 23 Javascript
python实现迭代法求方程组的根过程解析
Nov 25 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
如何管理Vue中的缓存页面
Feb 06 Vue.js
代码实例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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
AngularJS中filter的使用实例详解
2017/08/25 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
基于form-data请求格式详解
2019/10/29 Javascript
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python线程优先级队列知识点总结
2021/02/28 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
高中同学聚会邀请函
2014/01/11 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
检讨书范文2000字
2015/01/28 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
Python find()、rfind()方法及作用
2022/12/24 Python