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
,因此您可以將讀取流更改爲具有較低緩衝區(如果這是您所希望的)。
我的問題是,由於我直接管道,有無論如何聽寫可寫的寫事件嗎?我似乎聽到的唯一的事情是之後的排水事件它已經太多了。