ポンプは小さなノードモジュールであり、パイプが一緒にストリーミングし、そのうちの1つが閉じるとそれらすべてを破壊します。
npm install pump
標準のsource.pipe(dest)
使用する場合、DESTが近いまたはエラーを放出した場合、ソースは破壊されません。また、パイプがいつ終了したかを伝えるためのコールバックを提供することもできません。
ポンプはあなたのためにこれらの2つのことをします
パイプでパイプを渡すためにパイプをパスするだけで、オプションのコールバックを追加します
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 )
ポンプを使用して、3つ以上のストリームを一緒にパイプすることもできます
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')
を聞いていない場合はトリガーされません。
S1とS2の両方を単一のストリームに組み合わせたストリームを返す場合は、代わりにPumpifyを使用します。
mit
pump
これに類似したより便利なストリームモジュールを含むミシシッピストリームユーティリティコレクションの一部です。
Tideliftサブスクリプションの一部として利用可能。
ポンプのメンテナーと他の何千ものパッケージがTideliftと協力して、アプリケーションを構築するために使用するオープンソースの依存関係の商業サポートとメンテナンスを提供しています。時間を節約し、リスクを減らし、コードの健康を改善しながら、使用する正確な依存関係のメンテナーに支払います。もっと詳しく知る。