发出“exit”事件时执行异步代码

时间:2012-04-02 09:30:51

标签: javascript events node.js

我希望在发出exit事件时执行异步回调。例如:

process.addListener ("exit", function (){
    asynchronousCode (function (){
        //my callback
    });
});

我已尝试使用addListeneron,但回调中的代码永远不会被执行,因为程序会发出exit事件,执行异步函数并终止而不调用回调。

如何强制程序等到执行process.emit ("exit")之后?或者代码必须是同步的......

1 个答案:

答案 0 :(得分:3)

来自the documentation

当流程即将退出时发出。这是一个很好的钩子,可以对模块的状态进行持续的时间检查(比如单元测试)。 “退出”回调结束后,主事件循环将不再运行,因此可能无法安排计时器。

process.on('exit', function () {
  process.nextTick(function () {
   console.log('This will not run');
  });
  console.log('About to exit.');
});

所以你不能在这个处理程序中使用异步函数。