【发布时间】:2018-11-03 14:11:25
【问题描述】:
当您使用 Node.js 时,您就是在使用异步编程。
要处理层次结构,您显然需要使用回调。我也知道某些函数会阻塞主事件循环,例如 readFileSync() ..
但我注意到,即使是 for 循环这样简单的事情也会阻塞主事件循环。
例子:
function func1() {
for(var i = 0; i < 1000000000; i++) {
}
console.log("func1")
}
function func2() {
console.log('func2')
}
func1()
func2()
在这种情况下,'func1' 将始终在 'func2' 之前打印,并且在循环完成时首先打印。这对我来说似乎并不异步。我的意思是为什么我们要等待 func1 完成后再运行 func2?
是否有任何阻止主事件循环的操作的列表,或者有人可以解释为什么会发生这种情况?
【问题讨论】:
-
一台计算机可以这么快地计算for循环,它可能比gap还快
标签: node.js loops asynchronous synchronous event-loop