المضخة هي وحدة عقدة صغيرة تتدفق أنابيب وتدمرها جميعًا في حالة إغلاق أحدها.
npm install pump
عند استخدام مصدر source.pipe(dest)
لن يتم تدميره إذا كان القدر ينبعث أو خطأ. أنت أيضًا غير قادر على تقديم رد اتصال لمعرفة متى تنتهي Pipe.
المضخة تفعل هذين الأمرين لك
ما عليك سوى تمرير التدفقات التي تريد تجميعها لضخها وإضافة رد اتصال اختياري
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 إلى دفق واحد ، فاستخدم PUDIFY بدلاً من ذلك.
معهد ماساتشوستس للتكنولوجيا
تعد pump
جزءًا من مجموعة أدوات Mississippi Stream التي تتضمن المزيد من وحدات الدفق المفيدة المشابهة لهذا.
متاح كجزء من اشتراك Tidelift.
يعمل مشرفي المضخة وآلاف الحزم الأخرى مع Tidelift لتقديم الدعم والصيانة التجارية لتبعيات المصادر المفتوحة التي تستخدمها لبناء تطبيقاتك. وفر الوقت ، وتقليل المخاطر ، وتحسين صحة الكود ، مع دفع المشرفين على التبعيات الدقيقة التي تستخدمها. يتعلم أكثر.