如何设置可写的高水印?

时间:2019-03-06 15:10:33

标签: node.js

我在options中发现要为readable stream设置高水印: fs.createReadStream(path[, options])

但找不到writeable streamhighwatermark options

那么在创建可写流时如何设置它?

1 个答案:

答案 0 :(得分:2)

即使fs.createWriteStream上没有记载,stream.Writable也可以选择:highWaterMark

fs.createWriteStream('out', { highWaterMark: 32000 });

console.log(stream._writableState.highWaterMark); // 32000

并实际测试其是否正常工作:

const lowHWStream = fs.createWriteStream('low', { highWaterMark: 1 });
const highHWStream = fs.createWriteStream('high', { highWaterMark: 32000 });

console.log(lowHWStream.write('a')); // false
console.log(highHWStream.write('a')); // true
  

如果内部缓冲区小于返回值,则返回值为true。   承认后创建流时配置的highWaterMark   块。如果返回false,则进一步尝试将数据写入到   流应停止,直到发出“排水”事件为止。

Checking the source code,您可以看到传递给createWriteStream的选项已经传递给stream.Writable