ปั๊มเป็นโมดูลโหนดขนาดเล็กที่ท่อส่งเข้าด้วยกันและทำลายทั้งหมดหากหนึ่งในนั้นปิด
npm install pump
เมื่อใช้ source.pipe(dest)
แหล่งที่มาจะ ไม่ ถูกทำลายหากปลายทางปล่อยปิดหรือข้อผิดพลาด คุณยังไม่สามารถให้การโทรกลับเพื่อบอกได้ว่าเมื่อใดที่ท่อเสร็จสิ้น
ปั๊มทำสองสิ่งนี้ให้คุณ
เพียงแค่ผ่านสตรีมที่คุณต้องการท่อเข้าด้วยกันเพื่อปั๊มและเพิ่มการโทรกลับเสริม
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 )
คุณสามารถใช้ปั๊มเพื่อท่อมากกว่าสองสตรีมเข้าด้วยกันได้เช่นกัน
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 แทน
มิกซ์
pump
เป็นส่วนหนึ่งของคอลเลกชันยูทิลิตี้สตรีมมิสซิสซิปปีซึ่งมีโมดูลสตรีมที่มีประโยชน์มากขึ้นคล้ายกับชุดนี้
มีให้เป็นส่วนหนึ่งของการสมัครสมาชิก TideLift
ผู้ดูแลระบบปั๊มและแพ็คเกจอื่น ๆ นับพันกำลังทำงานร่วมกับ TideLift เพื่อให้การสนับสนุนและการบำรุงรักษาเชิงพาณิชย์สำหรับการพึ่งพาโอเพนซอร์สที่คุณใช้เพื่อสร้างแอปพลิเคชันของคุณ ประหยัดเวลาลดความเสี่ยงและปรับปรุงสุขภาพของรหัสในขณะที่จ่ายค่ารักษาผู้ดูแลการพึ่งพาที่แน่นอนที่คุณใช้ เรียนรู้เพิ่มเติม