Nodejs已经实现了背压机制. 如果不实现背压机制,会出现内存溢出、GC频繁调用、其他进程变慢等问题
const fs = require('fs');
let rs = fs.createReadStream('test.txt',{
highWaterMark:4
})
let ws = fs.createWriteStream('test1.txt',{
highWaterMark:1
})
let flag = true
rs.on('data',(chunk)=>{
flag = ws.write(chunk,()=>{
console.log("写完了")
})
if(!flag){
rs.pause()
}
})
ws.on('drain',()=>{
rs.resume()
})
主要通过可写流writ方法、drain事件
,可读流pause方法、resume方法
配合使用。