electron主进程使用spawn/stdin.write子进程如何接收
时间: 2023-11-22 11:56:03 浏览: 120
在 Electron 主进程中使用 `spawn` 或 `stdin.write` 启动子进程时,可以使用子进程对象的 `stdout` 属性来监听子进程的输出。以下是一个示例代码:
```javascript
const { spawn } = require('child_process');
const child = spawn('python', ['script.py']);
child.stdout.on('data', (data) => {
console.log(`child stdout: ${data}`);
});
child.stderr.on('data', (data) => {
console.error(`child stderr: ${data}`);
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
child.stdin.write('hello\n');
```
在这个例子中,我们使用 `spawn` 启动一个 Python 脚本,并将一条消息发送到子进程的标准输入。在子进程中,我们可以使用 `input()` 函数读取这条消息并将结果写入标准输出。在主进程中,我们可以使用子进程对象的 `stdout` 属性来监听子进程的输出,并在控制台中打印出来。
除了 `spawn` 和 `stdin.write`,还有其他启动子进程的方法,例如 `exec` 和 `fork`。不同的方法可能需要不同的监听器来处理子进程的输出。具体应该如何处理取决于你的具体情况。
阅读全文