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组件使用中遇到的问题整理及解决
Feb 21 Javascript
javascript数组操作总结和属性、方法介绍
Apr 05 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
js实现的tab标签切换效果代码分享
Aug 25 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
Bootstrap实现input控件失去焦点时验证
Aug 04 Javascript
AngularJS $injector 依赖注入详解
Sep 14 Javascript
js实现砖头在页面拖拉效果
Nov 20 Javascript
jQuery实现的分页功能示例
Jan 22 Javascript
layui 表格的属性的显示转换方法
Aug 14 Javascript
Vue.js仿Select下拉框效果
Feb 18 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
php 多文件上传的实现实例
2016/10/23 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
用js实现放大镜效果
2020/10/28 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
药品业务员岗位职责
2014/04/17 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
给朋友的道歉短信
2015/05/12 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
nginx静态资源的服务器配置方法
2022/07/07 Servers