前面的話
當(dāng)內(nèi)存中無(wú)法一次裝下需要處理的數(shù)據(jù)時(shí),或者一邊讀取一邊處理更加高效時(shí),我們就需要用到數(shù)據(jù)流。NodeJS中通過(guò)各種Stream來(lái)提供對(duì)數(shù)據(jù)流的操作。本文將詳細(xì)說(shuō)明NodeJS中的流stream
概述
流(stream)在Nodejs中是處理流數(shù)據(jù)的抽象接口。stream模塊提供了基礎(chǔ)的API 。使用這些API可以很容易地來(lái)構(gòu)建實(shí)現(xiàn)流接口的對(duì)象。Nodejs提供了多種流對(duì)象。 例如,HTTP請(qǐng)求和process.stdout都是流的實(shí)例
流可以是可讀的、可寫(xiě)的,或是可讀寫(xiě)的。所有的流都是 EventEmitter 的實(shí)例。
盡管所有的 Node.js 用戶都應(yīng)該理解流的工作方式,這點(diǎn)很重要, 但是 stream 模塊本身只對(duì)于那些需要?jiǎng)?chuàng)建新的流的實(shí)例的開(kāi)發(fā)者最有用處。 對(duì)于主要是消費(fèi)流的開(kāi)發(fā)者來(lái)說(shuō),他們很少(如果有的話)需要直接使用 stream 模塊