2017-07-28 104 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)) 
相關問題