我正在尝试以下
process.on('exit', function() {
child_process.exec('echo hello', /*...*/);
}
并希望延迟退出,直到子进程完成。
这可能吗?
答案 0 :(得分:1)
不,根据doc,exit
事件为时已晚,无法绑定任何异步事件。你应该听取beforeExit
事件。
当流程即将退出时发出。没有办法阻止 此时退出事件循环,一旦全部退出 监听器已经完成运行,进程将退出。所以你 必须只在此处理程序中执行同步操作。
在beforeExit
中,您可以执行异步操作并手动退出:
process.on('beforeExit', function() {
setTimeout(function(){ //run async code
console.log('beforeExit')
process.exit(0); //exit manually
}, 1000);
});