child_process.spawn仅在命令完成时立即返回stdout,但在执行期间不在块中返回

时间:2018-03-02 11:08:54

标签: node.js child-process spawn

代码如下:

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一次而不是块?

请告诉我,我正在做什么错误

谢谢

1 个答案:

答案 0 :(得分:1)

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

如果没有以块的形式出现,我有3行文本,大致在150字节的区域内。如果我使用其详细选项启动相同的进程,导致大约14k的输出,那么data事件将按照预期以块的形式触发。

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