const {PassThrough, Writable} = require('stream')
const pass = new PassThrough()
const writable = new Writable()
//没有为pass提供消费流数据的机制,所以流不会产生数据,pass.readableFlowing === null,此时pass处于暂停模式
console.log(pass.readableFlowing)
pass.pipe(writable)
//调用 readable.pipe()会使 readable.readableFlowing 切换到 true,可读流开始主动地产生数据并触发事件。,此时pass处于流动模式
console.log(pass.readableFlowing)
pass.unpipe(writable)
//调用readable.unpipe(),则 readable.readableFlowing 会被设为 false,暂时停止事件流动但不会停止数据的生成。此时pass处于暂停模式
// 在这个状态下,为 'data' 事件绑定监听器不会使 readable.readableFlowing 切换到 true。
console.log(pass.readableFlowing)
//监听可读流数据的流动,此时监听不到,因为pass当前处于暂停模式
pass.on('data', (chunk) => {
//默认接收到的数据是Buffer对象
console.log(chunk)
console.log(chunk.toString())
})
pass.write('ok')
pass.resume()
image.png
image.png
image.png
image.png
image.png
网友评论