node.js中的forEach()是同步还是异步呢
作者:bea
node里几乎所有用到回调函数的地方,都是异步的,回调函数后面的代码很可能比回调函数中的代码后先执行,特别是数据库操作。当然,node也提供了同步版本的函数,例如文件操作,fs.readFileSync()是fs.readFile()的同步版本。 那么问题来了,forEach()是不是异步的呢?按理说,没有加Sync,应该是异步的呀。 代码如下: var arr = ['a', 'b', 'c']; var str = '123'; arr.forEach(func
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创作
有用 | 无用
那么问题来了,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创作
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery中$.each使用详解
- jQuery显示和隐藏 常用的状态判断方法
- 移动设备web开发首选框架:zeptojs介绍
- JSON格式的键盘编码对照表
- js的window.showModalDialog及window.open用法实例分析
- JQuery异步获取返回值中文乱码的解决方法
- AngularJS中的模块详解
- jquery结合CSS使用validate实现漂亮的验证
- 5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
- 推荐一个自己用的封装好的javascript插件
- js实现点击左右按钮轮播图片效果实例
- JavaScript中实现继承的三种方式和实例
- javascript面向对象程序设计(一)
- jquery调取json数据实现省市级联的方法
- JavaScript中实现单体模式分享
- angular简介和其特点介绍
- javascript实现获取浏览器版本、操作系统类型
- 浅谈javascript中自定义模版
- jQuery和AngularJS的区别浅析