Stream在node.js中是一個抽象的接口,基于EventEmitter,也是一種Buffer的高級封裝,用來處理流數(shù)據(jù)。流模塊便是提供各種API讓我們可以很簡單的使用Stream。
流分為四種類型,如下所示:
Readable,可讀流
Writable,可寫流
Duplex,讀寫流
Transform,擴展的Duplex,可修改寫入的數(shù)據(jù)
1、Readable可讀流
通過stream.Readable可創(chuàng)建一個可讀流,它有兩種模式:暫停和流動。
在流動模式下,將自動從下游系統(tǒng)讀取數(shù)據(jù)并使用data事件輸出;暫停模式下,必須顯示調(diào)用stream.read()
方法讀取數(shù)據(jù),并觸發(fā)data事件。
所有的可讀流最開始都是暫停模式,可以通過以下方法切換到流動模式:
監(jiān)聽'data'事件
調(diào)用
stream.resume()
方法調(diào)用
stream.pipe()
方法將數(shù)據(jù)輸出到一個可寫流Writable
同樣地,也可以切換到暫停模式,有兩種方法:
如果沒有設(shè)置pipe目標(biāo),調(diào)用
stream.pause()
方法即可。如果設(shè)置了pipe目標(biāo),則需要移除所有的data監(jiān)聽和調(diào)用
網(wǎng)友評論