在JS循环中使用async/await的方法
2018-10-12 09:04
1031 查看
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的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- js实现为a标签添加事件的方法(使用闭包循环)
- js模版引擎handlebars.js实用教程——each-基本循环使用方法
- JS使用循环按指定倍数分割数组组成新的数组的方法
- Thread,ThreadPool,Task, 到async await 的基本使用方法和理解
- 在 Node.js 中使用 async 函数的方法
- 使用async 和 await方法来
- await和async的使用方法
- node-使用promise, generator, async/await 读取文件的方法
- async/await - 8.在for循环中正确的使用await
- Jquery 模板插件 jquery.tmpl.js 的使用方法(1):基本语法,绑定,each循环,ajax获取json数据
- 使用async await 封装 axios的方法
- Node.js 中使用 async 函数的方法
- 从Thread,ThreadPool,Task, 到async await 的基本使用方法解读
- 解决js异步问题的方法--async和await(ES7)
- .NET/C# 使用async和await关键字调用异步方法
- .NET 4.5 使用async和await关键字调用异步方法
- 优化JS中的Async/Await 使用
- js中使用setInterval方法只调用一次而没有循环调用
- nodejs Async 使用方法(解决多层回调嵌套)
- angular.js循环中,使用公共方法赋值