当pipe道读取stream写入stream时,听写?

我有这个代码:

const readStream = fs.createReadStream(readFilename, { highWaterMark: 10 * 1024 }); const writeStream = fs.createWriteStream(writeFilename, { highWaterMark: 1 * 1024 }); readStream.pipe(writeStream); 

正如你所看到的,两者的缓冲区(highWaterMark)大小是不同的。 读取有一个更高的缓冲区,当读取pipe道写入它确实是太多的写入缓冲区处理。 它在内存中保留了9 * 1014,处理了整个负载之后,它就会消耗掉。 这可以。

然而。 当通过writable.write手动writable.write ,返回false ,所以你可以改变读取stream有一个较低的缓冲区(如果这是你所希望的)。

我的问题是,由于我直接pipe道,有无论如何听写可写的写事件吗? 我能听到的唯一的事情就是它已经采取了太多的排水事件。

就在这里。 您可以收听data事件:

 writeStream.on('data', data => console.log(data))