Stream在node.js中是一個(gè)抽象的接口,基于EventEmitter,也是一種Buffer的高級(jí)封裝,用來(lái)處理流數(shù)據(jù)。流模塊便是提供各種API讓我們可以很簡(jiǎn)單的使用Stream。
流分為四種類(lèi)型,如下所示:
Readable,可讀流
Writable,可寫(xiě)流
Duplex,讀寫(xiě)流
Transform,擴(kuò)展的Duplex,可修改寫(xiě)入的數(shù)據(jù)
1、Readable可讀流
通過(guò)stream.Readable可創(chuàng)建一個(gè)可讀流,它有兩種模式:暫停和流動(dòng)。
在流動(dòng)模式下,將自動(dòng)從下游系統(tǒng)讀取數(shù)據(jù)并使用data事件輸出;暫停模式下,必須顯示調(diào)用stream.read()
方法讀取數(shù)據(jù),并觸發(fā)data事件。
所有的可讀流最開(kāi)始都是暫停模式,可以通過(guò)以下方法切換到流動(dòng)模式:
監(jiān)聽(tīng)'data'事件
調(diào)用
stream.resume()
方法調(diào)用
stream.pipe()
方法將數(shù)據(jù)輸出到一個(gè)可寫(xiě)流Writable
同樣地,也可以切換到暫停模式,有兩種方法:
如果沒(méi)有設(shè)置pipe目標(biāo),調(diào)用
stream.pause()
方法即可。如果設(shè)置了pipe目標(biāo),則需要移除所有的data監(jiān)聽(tīng)和調(diào)用
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26