我有一个生成标准输出的命令,但是不会退出。我使用child_process.spawn
生成,然后它将被杀死。我可以在终端中看到它产生输出,但是,我无法在nodejs中捕获它。
要尝试获取不完整的输出,我创建了可写流。但是,在检查带有断点的._write
函数之后,我看到它没有被调用。
(inside a promise)
const stream = new Writable()
stream._write = (chunk, encoding, done) => {
console.log(chunk.toString())
done()
}
const cmdProcess = spawn("<command that doesn't exit>", { shell: true, stdio: 'pipe' })
cmdProcess.stdout.pipe(stream)
cmdProcess.stdout.on('error', () => {
resolve('')
})
cmdProcess.stdout.on('end', () => {
resolve('')
})
setTimeout(() => {
cmdProcess.kill()
}, 5000)
使用 do 完成console.log(chunk.toString())
上的断点的命令被触发。
这让我迷失了方向,因此任何帮助都将得到极大的帮助。