Stream在node.js中是一个抽象的接口,基于EventEmitter,也是一种Buffer的高级封装,用来处理流数据。流模块便是提供各种API让我们可以很简单的使用Stream。
流分为四种类型,如下所示:
Readable,可读流
Writable,可写流
Duplex,读写流
Transform,扩展的Duplex,可修改写入的数据
1、Readable可读流
通过stream.Readable可创建一个可读流,它有两种模式:暂停和流动。
在流动模式下,将自动从下游系统读取数据并使用data事件输出;暂停模式下,必须显示调用stream.read()
方法读取数据,并触发data事件。
所有的可读流最开始都是暂停模式,可以通过以下方法切换到流动模式:
监听'data'事件
调用
stream.resume()
方法调用
stream.pipe()
方法将数据输出到一个可写流Writable
同样地,也可以切换到暂停模式,有两种方法:
如果没有设置pipe目标,调用
stream.pause()
方法即可。如果设置了pipe目标,则需要移除所有的data监听和调用
网友评论