pump

pipe streams together and close all of them if one of them closes

  • 所有者: mafintosh/pump
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

pump

pump is a small node module that pipes streams together and destroys all of them if one of them closes.

npm install pump

build status

What problem does it solve?

When using standard source.pipe(dest) source will not be destroyed if dest emits close or an error.
You are also not able to provide a callback to tell when then pipe has finished.

pump does these two things for you

Usage

Simply pass the streams you want to pipe together to pump and add an optional callback

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() // when dest is closed pump will destroy source
}, 1000)

You can use pump to pipe more than two streams together as well

var transform = someTransformStream()

pump(source, transform, anotherTransform, dest, function(err) {
  console.log('pipe finished', err)
})

If source, transform, anotherTransform or dest closes all of them will be destroyed.

Similarly to stream.pipe(), pump() returns the last stream passed in, so you can do:

return pump(s1, s2) // returns s2

Note that pump attaches error handlers to the streams to do internal error handling, so if s2 emits an
error in the above scenario, it will not trigger a proccess.on('uncaughtException') if you do not listen for it.

If you want to return a stream that combines both s1 and s2 to a single stream use
pumpify instead.

License

MIT

pump is part of the mississippi stream utility collection which includes more useful stream modules similar to this one.

主要指標

概覽
名稱與所有者mafintosh/pump
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2013-08-14 19:59:20
推送於2024-09-11 07:57:24
最后一次提交2024-09-11 09:57:20
發布數24
最新版本名稱v3.0.2 (發布於 2024-09-11 09:57:20)
第一版名稱v0.1.3 (發布於 2013-08-22 18:56:57)
用户参与
星數0.9k
關注者數5
派生數62
提交數71
已啟用問題?
問題數40
打開的問題數12
拉請求數5
打開的拉請求數7
關閉的拉請求數10
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?