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 相关文章推荐
js中将多个语句写成一个语句的两种方法小结
Dec 08 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
Webpack 服务器端代码打包的示例代码
Sep 19 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
Angular6笔记之封装http的示例代码
Jul 27 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
jQuery 实现扁平式小清新导航
Jul 07 jQuery
Vue中inheritAttrs的使用实例详解
Dec 31 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
如何做到多笔资料的同步
2006/10/09 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
js脚本实现数据去重
2014/11/27 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
vue中activated的用法
2021/01/03 Vue.js
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python实现图片筛选程序
2018/10/24 Python
python实现多线程端口扫描
2019/08/31 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
python如何设置静态变量
2020/09/07 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
python使用smtplib模块发送邮件
2020/12/17 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
会计主管岗位职责
2015/04/02 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python