当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))