是否可以在process.on(' exit',...)方法中等待child_process

时间:2015-08-13 11:19:48

标签: node.js process

我正在尝试以下

process.on('exit', function() {
    child_process.exec('echo hello', /*...*/);
}

并希望延迟退出,直到子进程完成。

这可能吗?

1 个答案:

答案 0 :(得分:1)

不,根据doc,exit事件为时已晚,无法绑定任何异步事件。你应该听取beforeExit事件。

  

当流程即将退出时发出。没有办法阻止   此时退出事件循环,一旦全部退出   监听器已经完成运行,进程将退出。所以你   必须只在此处理程序中执行同步操作。

beforeExit中,您可以执行异步操作并手动退出:

process.on('beforeExit', function() {
  setTimeout(function(){ //run async code
    console.log('beforeExit')
    process.exit(0);  //exit manually
  }, 1000);
});