gpt4 book ai didi

node.js - 在 Node 中使用 fork 子进程时如何捕获错误?

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:03 26 4
gpt4 key购买 nike

我正在使用 fork 方法在我的 Electron 应用程序中生成一个子进程,我的代码如下所示

'use strict'
const fixPath = require('fix-path');

let func = () => {
fixPath();
const child = childProcess.fork('node /src/script.js --someFlags',
{
detached: true,
stdio: 'ignore',
}

});

child.on('error', (err) => {
console.log("\n\t\tERROR: spawn failed! (" + err + ")");
});

child.stderr.on('data', function(data) {
console.log('stdout: ' +data);
});

child.on('exit', (code, signal) => {
console.log(code);
console.log(signal);
});

child.unref();

但是我的子进程立即退出,退出代码为 1 并发出信号,有没有办法可以捕获此错误?当我使用 childprocess.exec 方法时,我可以使用 stdout.on('error'... fork 方法有类似的东西吗?如果没有关于如何解决此问题的任何建议?

最佳答案

设置选项“silent:true”,然后使用事件处理程序 stderr.on() 我们可以捕获错误(如果有)。请检查下面的示例代码:

 let func = () => {
const child = childProcess.fork(path, args,
{
silent: true,
detached: true,
stdio: 'ignore',
}

});

child.on('error', (err) => {
console.log("\n\t\tERROR: spawn failed! (" + err + ")");
});

child.stderr.on('data', function(data) {
console.log('stdout: ' +data);
});

child.on('exit', (code, signal) => {
console.log(code);
console.log(signal);
});

child.unref();

关于node.js - 在 Node 中使用 fork 子进程时如何捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51775682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com