Pompa adalah modul simpul kecil yang menyatukan pipa dan menghancurkan semuanya jika salah satunya ditutup.
npm install pump
Saat menggunakan source.pipe(dest)
Sumber tidak akan dihancurkan jika DEST memancarkan dekat atau kesalahan. Anda juga tidak dapat memberikan panggilan balik untuk diceritakan kapan PIPE telah selesai.
Pompa melakukan dua hal ini untuk Anda
Cukup berikan aliran yang ingin Anda pipa bersama untuk memompa dan menambahkan panggilan balik opsional
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 )
Anda dapat menggunakan pompa untuk menyatukan lebih dari dua aliran bersama
var transform = someTransformStream ( )
pump ( source , transform , anotherTransform , dest , function ( err ) {
console . log ( 'pipe finished' , err )
} )
Jika source
, transform
, anotherTransform
atau dest
menutup semuanya akan dihancurkan.
Demikian pula dengan stream.pipe()
, pump()
mengembalikan aliran terakhir yang dilewati, sehingga Anda dapat melakukannya:
return pump(s1, s2) // returns s2
Perhatikan bahwa pump
melampirkan penangan kesalahan ke aliran untuk melakukan penanganan kesalahan internal, jadi jika s2
memancarkan kesalahan dalam skenario di atas, itu tidak akan memicu proccess.on('uncaughtException')
jika Anda tidak mendengarkannya.
Jika Anda ingin mengembalikan aliran yang menggabungkan S1 dan S2 ke aliran tunggal, gunakan Pumpify sebagai gantinya.
Mit
pump
adalah bagian dari Koleksi Utilitas Stream Mississippi yang mencakup modul aliran yang lebih berguna mirip dengan yang ini.
Tersedia sebagai bagian dari langganan tidelift.
Pemelihara pompa dan ribuan paket lainnya bekerja dengan Tidelift untuk memberikan dukungan dan pemeliharaan komersial untuk dependensi open source yang Anda gunakan untuk membangun aplikasi Anda. Hemat waktu, kurangi risiko, dan tingkatkan kesehatan kode, sambil membayar pemelihara dari ketergantungan yang tepat yang Anda gunakan. Pelajari lebih lanjut.