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日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
JavaScript 在各个浏览器中执行的耐性
Apr 06 Javascript
jQuery.validate 常用方法及需要注意的问题
Mar 20 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
利用js获取下拉框中所选的值
Dec 01 Javascript
了解javascript中let和var及const关键字的区别
May 24 Javascript
js实现带积分弹球小游戏
Jul 21 Javascript
浅谈JavaScript节流和防抖函数
Aug 25 Javascript
使用js和canvas实现时钟效果
Sep 08 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php获取字段名示例分享
2014/03/03 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
Angular父组件调用子组件的方法
2018/04/02 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Python多进程编程常用方法解析
2020/03/26 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
UDP协议功能
2013/01/06 面试题
医药专业应届毕业生求职信范文
2014/01/01 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
校园创业策划书
2014/01/14 职场文书
代理协议书
2014/04/22 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
授权委托书
2014/09/17 职场文书
2014年底工作总结
2014/12/15 职场文书
单身申明具结书
2015/02/26 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python