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 相关文章推荐
学习ExtJS fit布局使用说明
Oct 08 Javascript
深入理解JavaScript定时机制
Oct 29 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
jQuery实现流动虚线框的方法
Jan 29 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 Javascript
谈谈JavaScript中的函数
Sep 08 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php5 图片验证码实现代码
2009/12/11 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
python实战教程之自动扫雷
2018/07/13 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
行政经理的岗位职责
2013/11/23 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
模具数控专业自荐信
2014/01/27 职场文书
英语教学随笔感言
2014/02/20 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
小学家长通知书评语
2014/12/31 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
公司岗位说明书
2015/10/08 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技