溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Node.js Stream(流)

發(fā)布時(shí)間:2020-08-15 14:16:51 來(lái)源:ITPUB博客 閱讀:123 作者:as507169008 欄目:web開(kāi)發(fā)

Node.js Stream(流)

Stream 是 Node.js 中非常重要的一個(gè)模塊,應(yīng)用廣泛。

Stream 是一個(gè)抽象接口,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口。例如,對(duì)http 服務(wù)器發(fā)起請(qǐng)求的request 對(duì)象就是一個(gè) Stream,還有stdout(標(biāo)準(zhǔn)輸出)。

該抽象接口是可讀、可寫(xiě)或是既可讀又可寫(xiě)的,通過(guò)這些接口,我們可以和磁盤(pán)文件、套接字、HTTP請(qǐng)求來(lái)交互,實(shí)現(xiàn)數(shù)據(jù)從一個(gè)地方流動(dòng)到另一個(gè)地方的功能。

Node.js,Stream 有四種流類(lèi)型:

-Readable - 可讀操作。

-Writable - 可寫(xiě)操作。

-Duplex - 可讀可寫(xiě)操作.

-Transform - 操作被寫(xiě)入數(shù)據(jù),然后讀出結(jié)果。

所有的 Stream 對(duì)象都是 EventEmitter 的實(shí)例。常用的事件有:

-data - 當(dāng)有數(shù)據(jù)可讀時(shí)觸發(fā)。

-end - 沒(méi)有更多的數(shù)據(jù)可讀時(shí)觸發(fā)。

-error - 在接收和寫(xiě)入過(guò)程中發(fā)生錯(cuò)誤時(shí)觸發(fā)。

-finish - 所有數(shù)據(jù)已被寫(xiě)入到底層系統(tǒng)時(shí)觸發(fā)。

。。。

管道流http://www.iis7.com/a/lm/yczmljgj/

管道提供了一個(gè)輸出流到輸入流的機(jī)制。通常我們用于從一個(gè)流中獲取數(shù)據(jù)并將數(shù)據(jù)傳遞到另外一個(gè)流中。

。。。

鏈?zhǔn)搅?

鏈?zhǔn)绞峭ㄟ^(guò)連接輸出流到另外一個(gè)流并創(chuàng)建多個(gè)對(duì)個(gè)流操作鏈的機(jī)制。鏈?zhǔn)搅饕话阌糜诠艿啦僮鳌?

接下來(lái)我們就是用管道和鏈?zhǔn)絹?lái)壓縮和解壓文件。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI