node.js中的forEach()是同步还是异步呢


Posted in Javascript onJanuary 29, 2015

node里几乎所有用到回调函数的地方,都是异步的,回调函数后面的代码很可能比回调函数中的代码后先执行,特别是数据库操作。当然,node也提供了同步版本的函数,例如文件操作,fs.readFileSync()是fs.readFile()的同步版本。

那么问题来了,forEach()是不是异步的呢?按理说,没有加Sync,应该是异步的呀。

 var arr = ['a', 'b', 'c'];

 var str = '123';

 arr.forEach(function(item) {

   str += item;

   while (true) {};  //用一个死循环,卡死它~~

 });

 console.log(str);

运行上面的代码,结果它就这么卡死了,没有任何输出。。

所以说,node里的forEach()是同步的!!

第一次用node的时候,没有考虑过这个问题,按同步的写了,写突然想到,测试后虚惊一场,以为以前的代码都写错了。

如果在某些情况下,需要异步处理forEach,谷歌了一下,有个node-array,可以试试看~~ 传送门:https://github.com/cfsghost/node-array

本作品由http://www.cnblogs.com/ImYZF创作

Javascript 相关文章推荐
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
Sep 04 Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 Javascript
JavaScript实现级联菜单的方法
Jun 29 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
js时间戳与日期格式之间转换详解
Dec 11 Javascript
vue 集成jTopo 处理方法
Aug 07 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 #Javascript
使用Sticker.js实现贴纸效果
Jan 28 #Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 #Javascript
7个让JavaScript变得更好的注意事项
Jan 28 #Javascript
简单谈谈javascript代码复用模式
Jan 28 #Javascript
JS动态添加Table的TR,TD实现方法
Jan 28 #Javascript
扒一扒JavaScript 预解释
Jan 28 #Javascript
You might like
PHP 的 __FILE__ 常量
2007/01/15 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
实例讲解React 组件
2020/07/07 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
本科毕业生的求职信范文
2013/11/20 职场文书
干部下基层实施方案
2014/03/14 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
2014教师年度工作总结
2014/11/10 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python