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 相关文章推荐
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
简单实现js点击展开二级菜单功能
May 16 Javascript
详解VUE 定义全局变量的几种实现方式
Jun 01 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
vue使用better-scroll实现滑动以及左右联动
Jun 30 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
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
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python正则表达式介绍
2012/08/06 Python
Python通过解析网页实现看报程序的方法
2014/08/04 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Python实现购物车购物小程序
2018/04/18 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python urllib.request对象案例解析
2020/05/11 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
毕业生在校学习的自我评价分享
2013/10/08 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
大学计划书范文800字
2014/08/14 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏