Node.js事件循环阶段

我是node.js的新手,我经历了node.org上给出的事件循环文档。

那里有这样的说法:当Node.js启动时,它初始化事件循环,处理提供的input脚本(或者放入本文没有涉及的REPL),这可能使asynchronousAPI调用,调度定时器或调用process.nextTick(),然后开始处理事件循环。

我已经阅读了每个阶段的文档,但不能完全理解。

比方说,我有index.js中的以下代码:

console.log('started...'); setTimeout(function(){ console.log('timeout callback...'); },1000); console.log('Finishes...'); 

我想知道在哪个阶段我的整个代码第一次加载,以及如何事件循环将用于上面的代码时,我运行命令

 node index.js 

谢谢。

好吧,你应该看到started ..然后Finishes语句,其次是timeout callback

如上文所述,eventLoop执行asynchronousAPI调用,即在执行setTimeout函数(使用节点Timers )时不等待下一个阶段的调用。 Nodejs等待1000毫秒的callback完成与另一个THREAD并finishes运行较早。