完成时的子进程事件

Child process events when finish

本文关键字:事件 子进程 完成时      更新时间:2023-09-26

有一种方法可以扩展nodejs的child_process事件似乎有时没有调用事件,所以我想看看该过程是否已结束,然后触发事件。例如,我使用生成并且该过程成功,但没有调用以下事件,那么当生成过程完成时,我可以通过事件或其他方式进行跟踪吗?

function childProcessPromise(mtd, cmd, options) {
    var child = child_process.spawn(cmd, value, opt);
    child.stdout.on('data', function (data) {
        console.log('data' + data);
    });
    child.stderr.on('data', function (data) {
        console.log('test: ' + data);
        reject(data);
    });
    child.on('close', function (code) {
        console.log("close");
    });
    child.on('error', function (err) {
        console.log(err);
    });
  });
}

文档表明您观察到的内容可能是正确的:

https://nodejs.org/api/child_process.html#child_process_event_close

事件:"关闭"#

代码

如果孩子自行退出,则对退出代码进行编号。 信号 将终止子进程的信号串起来。这 当子进程的 STDIO 流时发出"关闭"事件 已关闭。这与"退出"事件不同,因为 多个进程可能共享相同的 STDIO 流。

由于默认情况下子流与父流共享,因此只要父流处于打开状态,流就不会关闭

https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

我对 spawn 几乎没有经验,也没有亲眼看到这个,但这就是我解释文档的方式