官网可读流例1解析

2021-02-23  本文已影响0人  静昕妈妈芦培培
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
上一篇 下一篇

猜你喜欢

热点阅读