2017-07-28 75 views
1

我的代码:当管道读取流写入流时,听写吗?

const readStream = fs.createReadStream(readFilename, { 
    highWaterMark: 10 * 1024 
}); 

const writeStream = fs.createWriteStream(writeFilename, { 
    highWaterMark: 1 * 1024 
}); 

readStream.pipe(writeStream); 

正如你所看到的,缓冲区(highWaterMark)尺寸均为不同。读取有一个更高的缓冲区,当读取管道写入时,写入缓冲区的处理确实太多了。它在内存中保留了9 * 1014,并且在它处理了整个负载之后,它会调用drain。这可以。

但是,当通过writable.write写入手动写入时,将返回false,因此您可以将读取流更改为具有较低缓冲区(如果这是您所希望的)。

我的问题是,由于我直接管道,有无论如何听写可写的写事件吗?我似乎听到的唯一的事情是之后的排水事件它已经太多了。

回答

0

是的。你可以听data事件:

writeStream.on('data', data => console.log(data)) 
相关问题