Node.js进程标准输出直到行尾字符才发送数据

Node.js进程标准输出直到行尾字符才发送数据,node.js,process,stdout,Node.js,Process,Stdout,我在Windows上使用node.js启动一个CLI进程,该进程将数据输出到我在“数据”上捕获的标准输出 然后问题是,我只在发出新行时才获取数据。有时同时有多行(这很好),但最后总是有一行新行。有时应用程序会发出最后一行,但没有新行,因此在进程继续进行下一个输出之前,我无法获得该行 是否可以在没有新行的情况下读取流数据?也许可以给您一个线索。我的猜测是,只有当数据已满或发生\n时,数据才会被孩子刷新。关于使用python使用-u,有一个很好的答案。也许有些东西是给你的。您试图生成的程序类型是什么

我在Windows上使用node.js启动一个CLI进程,该进程将数据输出到我在“数据”上捕获的标准输出

然后问题是,我只在发出新行时才获取数据。有时同时有多行(这很好),但最后总是有一行新行。有时应用程序会发出最后一行,但没有新行,因此在进程继续进行下一个输出之前,我无法获得该行


是否可以在没有新行的情况下读取流数据?

也许可以给您一个线索。我的猜测是,只有当数据已满或发生
\n
时,数据才会被孩子刷新。关于使用python使用
-u
,有一个很好的答案。也许有些东西是给你的。您试图生成的程序类型是什么?AutoCAD CLI(称为AccoronSole)@mottosson您编辑了您的问题,并对其进行了重新措辞。多次编辑花费了人们的时间,请先写下你最初的最后一篇文章,然后提问。因为你问了一些完全不同的问题。看看@user3258569的答案,你可以试着用以下方式生成你的程序:
script-c-f
。它应该强制对
AccorOnSole
程序进行刷新。
const { spawn } = require('child_process');
const process = spawn(path);

process.stdout.on("data", (data) => {
  const message = data.toString("utf16le").replace(/\0/g, "");
  console.log(message);
});