child_process.spawn 仅在命令完成时立即返回标准输出,但在执行期间不会以块形式返回



code如下:

var exec = require('child_process').spawn;
var child = exec('executable.exe',['-nw','-nc','launch.txt']);
child.stdout.on('data', function(data){
    console.log("STDOUT : ",data.toString());
});
child.stderr.on('data',function(data){
    console.log("STDERR : ",data.toString());
});

总输出约为 20-25 行,我希望数据以块为单位,但它一次只返回所有 20-25 行,而不是块

请帮助我说出我犯了什么错误

谢谢

我遇到了同样的问题。我注意到它似乎是由通过多少数据触发的。

在它不是以块的形式出现的情况下,我有 3 行文本,大约在 150 字节的范围内。如果我使用其详细选项启动相同的进程,产生大约 14k 的输出,则 data 事件将按预期以块形式触发。

这不是一个好的解决方案,但它可能是一个可行的解决方法。

最新更新