在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 相关文章推荐
DOM相关内容速查手册
Feb 07 Javascript
js中typeof的用法汇总
Dec 12 Javascript
Javascript玩转继承(三)
May 08 Javascript
jQuery学习笔记之总体架构
Jun 03 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
EasyUI创建对话框的两种方式
Aug 23 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 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文本数据库的搜索方法
2006/10/09 PHP
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
用js计算页面执行时间的函数
2006/12/07 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
node使用request请求的方法
2019/12/20 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python字符串替换实例分析
2015/05/11 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
Java程序员面试90题
2013/10/19 面试题
求职推荐信
2013/10/28 职场文书
酒店副总岗位职责
2013/12/24 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
八达岭长城导游词
2015/01/30 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书