【发布时间】:2020-02-26 16:08:39
【问题描述】:
我有一个打开外部程序(在我的情况下为 Office)的电子应用程序,并且必须等待程序关闭。
我编写的代码运行良好,但有时child_process.on('close') 事件会在程序关闭后 10 或 20 秒触发。代码是:
const cp = require("child_process");
child = cp.spawn(path/to/Office.exe + ' "' + path/to/myFile.pptx + '"', {shell: true});
child.on('close', function (code) {
//do something
});
大多数情况下它会在 1 或 2 秒后做出反应,这很好,但有时需要 20 秒才能收到关闭事件。程序关闭很快(根据任务管理器),但节点似乎在等待什么。
我还尝试了child.on('exit'),使用cp.exec() 调用程序并使用options.stdio: ignore 生成,因为我认为节点可能正在等待来自孩子的一些流。但这并没有什么不同。
有人知道加快这个过程的安全方法吗?
【问题讨论】:
-
要考虑的另一件事是您的代码中可能存在“内存消耗”或同步的内容。这可能会对节点造成影响。
-
我当时在 chromiums 调试器的性能监视器上记录。 chrome 中绝对没有。
标签: node.js electron child-process