测试了一下,JS的for循环是阻塞的,那么在nodejs 服务器,不是不能用for循环

测试了一下,JS的for循环是阻塞的,那么在nodejs服务器,不是不能用for循环... 测试了一下,JS的for循环是阻塞的,那么在nodejs 服务器,不是不能用for循环 展开
 我来答
百度网友84c11da
推荐于2016-03-23 · TA获得超过1108个赞
知道小有建树答主
回答量:695
采纳率:100%
帮助的人:404万
展开全部

首先你得明白阻塞指的是什么,   nodejs里面的阻塞指的的I/O阻塞, 比如 文件读写, 网络流量等,    在你的观念里面,以为什么都可以阻塞是错误的, js的for循环中如果进行的是IO操作,那么,它也是非阻塞的。 基本在所有的程序语言里面,计算型的操作都是阻塞的,cpu 需要持续不断的工作才能完成 数据计算。

举个简单的例子来说明for的阻塞和非阻塞情况。(这里用setTimeout 来模拟
操作)

#阻塞型
for(var i = 0; i < 10;i++  ){console.log(i)}
输出: 1,2,3 ...10
#非阻塞型
for(var i = 0; i < 10; i++){
 setTimeout(function(){
     console.log(i)
 }, 10-i)
}
输出: 10, 9, ...0 #在实际中可能是这样的顺序,也可能不是的,因为无法预估 IO完成的实际时间。

如果for 循环是阻塞的,那么第二个for循环的输出顺序应该和第一个是一样的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式