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
运行较早。