由于许多node.js脚本遵循异步做某事的模式(下面的示例),他们如何知道何时停止?
在下面的代码中,节点在处理writeFile之后如何确定并适当地注册回调,该进程应该保持活动直到回调运行?
fs = require('fs');
fs.writeFile('foo', 'cat', function() {
console.log('wrote to foo!');
fs.readFile('foo', 'utf8', function(err, data) {
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud) 当Node的事件循环完全耗尽时,该过程存在。但是,由于,例如,这不会在HTTP服务器上发生server.listen()。但是该功能到底有什么作用?
看着代码和一个旧的不完整的答案,它最终会调用self._listen2(),在上发出“监听”事件process.nextTick,并从中获取异步钩子ID DefaultTriggerAsyncId()。
但是,我还是不明白。我在这里想念什么?仅此代码如何使事件循环保持“空闲”状态?函数如何包装在C侧?实际执行此操作的代码行在哪里?
谢谢!