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 阿孝做了所有能做的,把自己奉獻給家族 家人,卻依然跳不出自己...