更多gulp常用插件使用請訪問:gulp常用插件匯總
pump這是一款小型節點模塊,可將流連接在一起並在其中一個關閉時將其全部銷毀。
使用標准source.pipe(dest)源時,如果dest發出關閉或錯誤,則不會破壞源。您也無法提供回調以告知管道何時完成。幫你做這兩件事
更多使用文檔請點擊訪問pump工具官網。
為什么我們使用pump
當使用Node.js
流中的管道時,錯誤不會通過管道流傳播,如果目標流關閉,則源流不會關閉。 泵模塊將這些問題規范化,並在回調中傳遞錯誤。
其實說白了就是pump可以使我們更容易找到代碼出錯位置.
當我們使用pipe出錯時可能會提示
而使用了pump會提示
安裝
一鍵安裝不多解釋
npm install --save-dev pump
使用
只需將要管道傳遞的流傳遞到泵並添加可選的回調
var pump = require('pump')
var fs = require('fs')
var source = fs.createReadStream('/dev/random')
var dest = fs.createWriteStream('/dev/null')
pump(source, dest, function(err) {
console.log('pipe finished', err)
})
setTimeout(function() {
dest.destroy() //當dest為閉式泵會破壞源
}, 1000)
您還可以使用泵將兩個以上的流也管道在一起
var transform = someTransformStream()
pump(source, transform, anotherTransform, dest, function(err) {
console.log('pipe finished', err)
})
如果source
,transform
,anotherTransform
或dest
關閉所有的人都將被銷毀。
與相似stream.pipe()
,pump()
返回傳入的最后一個流,因此您可以執行以下操作:
return pump(s1, s2) // returns s2
請注意,pump
將錯誤處理程序附加到流上以進行內部錯誤處理,因此,如果s2在上述情況下發出錯誤,則proccess.on('uncaughtException')
如果您不偵聽它,將不會觸發a 。
如果要將組合了 s1和s2 的流返回到單個流,請使用 Pumpify代替。