'exit' 事件
code
<integer>
当 Node.js 进程由于以下任一原因即将退出时,则会触发 'exit'
事件:
process.exit()
方法被显式调用;- Node.js 事件循环不再需要执行任何额外的工作。
此时没有办法阻止事件循环的退出,一旦所有 'exit'
监听器都运行完毕,则 Node.js 进程将终止。
监听器回调函数使用 process.exitCode
属性指定的退出码或传给 process.exit()
方法的 exitCode
参数调用。
process.on('exit', (code) => {
console.log(`About to exit with code: ${code}`);
});
监听器函数必须只执行同步的操作。
Node.js 进程将在调用 'exit'
事件监听器之后立即退出,从而使任何仍在事件循环中排队的其他工作被丢弃。
例如,在以下示例中,超时永远不会发生:
process.on('exit', (code) => {
setTimeout(() => {
console.log('This will not run');
}, 0);
});
code
<integer>
The 'exit'
event is emitted when the Node.js process is about to exit as a
result of either:
- The
process.exit()
method being called explicitly; - The Node.js event loop no longer having any additional work to perform.
There is no way to prevent the exiting of the event loop at this point, and once
all 'exit'
listeners have finished running the Node.js process will terminate.
The listener callback function is invoked with the exit code specified either
by the process.exitCode
property, or the exitCode
argument passed to the
process.exit()
method.
process.on('exit', (code) => {
console.log(`About to exit with code: ${code}`);
});
Listener functions must only perform synchronous operations. The Node.js
process will exit immediately after calling the 'exit'
event listeners
causing any additional work still queued in the event loop to be abandoned.
In the following example, for instance, the timeout will never occur:
process.on('exit', (code) => {
setTimeout(() => {
console.log('This will not run');
}, 0);
});