Node.js中流(stream)的使用方法示例

2020-06-17 06:37:02易采站长站整理

可读流是 对提供数据的源头的抽象

可读流的实例

http responses,on the client
http requests, on the server
fs read stream
zlib streams
crypto streams
TCP sockets
child process stdout and stderr
process.stdin

可读流的模式

可读流有两种工作模式:flowing和paused.

在flowing模式下,可读流自动从系统底层读取数据,并通过EventEmitter接口的事件尽快将数据提供给应用.

可读流在创建的时候都是处在paused模式.

可读流可以在两种模式下切换.

处于paused模式可读流,可以通过下面三种途径切换到flowing模式:

监听’data’事件.
调用

stream.resume()
方法.
调用
stream.pipe()
方法将数据发送到Writable

处于flowing模式可读流,可以通过下面两种途径切换到paused模式:

如果不存在管道目标,可以通过调用

stream.pause()
方法实现
如果存在管道目标,可以通过取消’data’事件监听,并调用
stream.unpipe()
方法移除所有管道来实现

可读流事件

可读流提供了以下事件:

‘close’事件,事件将在流或底层资源关闭后触发,但不是所有的流都会触发该事件.
‘data’事件,data事件将会在流将数据传递给消费者时触发.当流转换到flowing模式时会触发该事件.
‘end’事件,end事件只有在数据被完全消费后才会触发.
‘error’事件,error事件会在底层系统内部出错从而不能产生数据,或当流的实现试图传递错误数据时发生.
‘readble’事件,readable事件将在流中有数据可供读取时触发.

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对软件开发网的支持。