Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js子进程生成标准输出较低的高水位线_Javascript_Node.js_Stdout_Spawn_Child Process - Fatal编程技术网

Javascript node.js子进程生成标准输出较低的高水位线

Javascript node.js子进程生成标准输出较低的高水位线,javascript,node.js,stdout,spawn,child-process,Javascript,Node.js,Stdout,Spawn,Child Process,在执行child_process.spawn时,是否有方法降低标准输出的高水位线 我读到可能有一种方法可以降低exec的值,但实际上我需要启动一个进程,我可以通过stdin传递数据,并通过stdout读取结果 highWaterMark设置为high,导致读取标准输出时出现不可接受的延迟 我已尝试通过以下方式将流对象传递到“繁殖”链接: avconv = spawn("avconv", params, { stdio: [process.stdin, process.stdout, proc

在执行child_process.spawn时,是否有方法降低标准输出的高水位线

我读到可能有一种方法可以降低exec的值,但实际上我需要启动一个进程,我可以通过stdin传递数据,并通过stdout读取结果

highWaterMark设置为high,导致读取标准输出时出现不可接受的延迟

我已尝试通过以下方式将流对象传递到“繁殖”链接:

avconv = spawn("avconv", params, {
  stdio: [process.stdin, process.stdout, process.stderr]
});
这很好,但当我尝试为witch创建自己的流时,我可以定义自定义highWaterMark:

var readable = new stream.Readable();

avconv = spawn("avconv", params, {
  stdio: [process.stdin, readable, process.stderr]
});

节点不会接受它。导致类型错误。

通过设置以下各项,我可以降低子stdio流的缓冲区:

child.stdin._writableState.highWaterMark
child.stdout._readableState.highWaterMark
但是,这个过程似乎还进行了其他缓冲,因此降低这些缓冲可能会或可能不会有多大帮助


文档说,传递到stdio选项的流必须有一个底层文件描述符,例如附加到文件或套接字的文件描述符。

这不应该是作为第二个参数传递的
流吗<代码>进程。stdout
是一个可写流。也许您只需要将stdio切换到
[readable,writable,process.stderr]
thx进行输入,实际上我已经全部尝试过了。可读、可写、双工。我实际上不知道我需要什么。可读性似乎是合乎逻辑的选择,因为我读的是标准文本-不是吗?