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下给元素添加事件的方法与代码
Aug 13 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
js时间日期和毫秒的相互转换
Feb 22 Javascript
Jquery插件easyUi表单验证提交(示例代码)
Dec 30 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
iview table高度动态设置方法
Mar 14 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 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
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
学习ExtJS Column布局
2009/10/08 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Oracle快照(snapshot)
2015/03/13 面试题
文史专业毕业生自荐信
2013/11/17 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
自我鉴定书面格式
2014/01/13 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
警告通知
2015/04/25 职场文书
举起手来观后感
2015/06/09 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
vue elementUI表格控制对应列
2022/04/13 Vue.js
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server