node.js中的forEach()是同步还是异步呢
更新时间:2015年01月29日 08:47:13 作者:ImYZF
这篇文章主要讨论并验证了node.js中的forEach()是同步还是异步,思路和方法分享给大家,有需要的小伙伴可以参考下。
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创作
相关文章
node.js中Buffer缓冲器的原理与使用方法分析
这篇文章主要介绍了node.js中Buffer缓冲器的原理与使用方法,结合实例形式分析了node.js Buffer缓冲器的基本概念、原理、创建、使用方法及相关操作注意事项,需要的朋友可以参考下
2019-11-11
浅谈NodeJS中require路径问题
学习Nodejs也是出于对这个新产物的好奇,而且有两个重要项目也需要他的支持,所以要好好学学这个新语种。在nodejs中,模块大概可以分为核心模块和文件模块。核心模块是被编译成二进制代码,引用的时候只需require表示符即可
2015-05-05
Nest.js散列与加密实例详解
这篇文章主要给大家介绍了关于Nest.js散列与加密的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2021-02-02
利用node.js启动本地服务器的操作指南(超详细)
这篇文章主要介绍了利用node.js启动本地服务器的操作指南(超详细),有很多小伙伴制作网站或者小程序时,需要通过服务器来把前端和后端连接起来,那么我们今天学习启动node.js服务器,文中有详细的代码示例和图文供大家参考,具有一定的参考价值,需要的朋友可以参考下
2024-05-05
node.js实现端口转发
这篇文章主要为大家详细介绍了node.js实现端口转发的关键代码,感兴趣的小伙伴们可以参考一下
2016-04-04
Nodejs实现微信分账的示例代码
这篇文章主要介绍了Nodejs实现微信分账的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2021-01-01
nodejs的10个性能优化技巧
在我接触JavaScript(无论浏览器还是NodeJS)的时间里,总是遇到有朋友有多线程的需求。而在NodeJS方面,有朋友甚至直接说到,NodeJS是单线程的,无法很好的利用多核CPU。那么我们在使用过程中,就要非常注意性能优化了
2014-07-07
最新评论