代码如下:
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 行,我期望以 block 的形式返回数据,但它仅一次返回所有 20-25 行,而不是以 block 的形式返回
请帮助我告诉我我犯了什么错误
谢谢
最佳答案
我也有同样的问题。我注意到它似乎是由通过的数据量触发的。
在它不以 block 的形式出现的情况下,我有 3 行文本,大约在 150 字节的区域。如果我使用详细选项启动相同的进程,产生大约 14k 的输出,那么 data
事件会按预期按 block 触发。
这不是一个好的解决方案,但它可能是一个可行的解决方案。
关于node.js - child_process.spawn 仅在命令完成时立即返回 stdout,但在执行期间不会分块返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49067914/