npm裡的through2這個模組是什麼功能?沒有看明白請大神講解一下

時間 2021-05-31 19:34:54

1樓:張楷猴

我的看法是幫你新建乙個Stream, 把你的transform函式給了Stream的_transform屬性。

讓你只關注對流的處理不需要每次都要去new Stream一下比如咱們建立乙個大寫化的stream,平常是這樣子的class

ThroughStream

extends

stream

.Transform

_transform

(chunk

,enc,cb

)}使用的話, 可以這樣子

process

.stdin

.pipe

(new

ThroughStream())

.pipe

(process

.stdout

)但是如果是through2的話, 它內建幫你建立好對應的stream了, 所以只需要實現_transform就行了。

process

.stdin

.pipe

(through

.obj

(function

(chunk

,enc,cb

)this

.push

(chunk

.toString

().replace

(/\n/,''

).toUpperCase()+

'\n')cb

();}

)).pipe

(process

.stdout)l

2樓:大蟲子菌

拋磚引玉,輕拍~

through2是對node.js原生stream.Transform進行的封裝。

原始碼中定義了乙個DestroyableTransform

一般gulp的外掛程式都會用through2,這是因為gulp使用了vinyl-fs,而vinyl-fs使用了through2。

throuhg2一般有兩種用法。

through2(function(chunk,enc,cb){})

through2.obj(function(chunk,enc,cb){})

普通的stream用起來和第一種基本一樣

fs.createReadStream('./tt.txt')

.pipe(through2(function(chunk,enc,cb)))

.pipe(fs.createWriteStream('./aa.txt'))

fs.createReadStream('./tt.txt')

.pipe(new require('stream').Transform()

gulp.task('error',function()))

.pipe

(gulp

.dest

('./'

))})

總之寫gulp外掛程式基本跑不了用through2了。。。所以你會看到各種through2的引用。

寫stream的時候也很常用,畢竟封裝了之後,語法清晰,且有更強大的功能

through2具體原理並沒有仔細看,不太了解原理(其實是水平太low你讓我講我也講不出來有時間研究下原始碼補充下=。=

3樓:魯小夫

用來處理 stream 的。。。

Node 自帶的 stream API 不好用。

dota2職業比賽裡為什麼不用伐木機這個英雄?

玉藻前真太可愛了 因為伐木機現在常規是三號位,但是現在這個版本三號位一般都工具人為主,團隊裝拉滿,保護大哥和中單,伐木機。經常打團打完了他還可能滿血,傷害不高,控制也沒,保人也沒 好久不玩dota了 花母雞即使最熱的時候,其實也是推線核心 當C,後期廢 當4.5號位,沒控制沒輸出,廢 當3號位,你是...

Dota2裡如何打好矮人狙擊手這個英雄?

chickenbeer 目前版本7.19c火槍很強勢。是個吸引仇恨,輸出高的全期英雄。火槍就是要注意以下三點 1.猥瑣發育,2.積極後手參團,3.猥瑣站位。這三點做不到的話下面的理解就不推薦你看了。火槍怕的是切後排厲害的敵方英雄 有幽鬼發條隱刺什麼的就要注意些 以及不注意保護火槍的己方陣容,所以需要...

如何評價《無間道2》裡倪永孝這個人物?

shizuki 倪永孝這個角色是整個無間道系列最出彩的人物。香港版黑幫教父之名,實至名歸。說真的,一開始沒想到,但是吳鎮宇的演技太好太好了,拿捏得剛剛好。多一分過火,少一分淺薄。香港金像獎永遠欠飾演倪永孝的吳鎮宇一座影帝。 cynical 阿孝做了所有能做的,把自己奉獻給家族 家人,卻依然跳不出自己...