La pompe est un petit module de nœud qui tue les ruisseaux et les détruit tous si l'un d'eux se ferme.
npm install pump
Lors de l'utilisation de source.pipe(dest)
la source ne sera pas détruite si Dest émet une fermeture ou une erreur. Vous n'êtes pas non plus en mesure de fournir un rappel pour dire quand le tuyau a terminé.
La pompe fait ces deux choses pour vous
Passez simplement les flux que vous souhaitez tuer ensemble pour pomper et ajouter un rappel facultatif
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 )
Vous pouvez également utiliser la pompe pour tuer plus de deux flux ensemble
var transform = someTransformStream ( )
pump ( source , transform , anotherTransform , dest , function ( err ) {
console . log ( 'pipe finished' , err )
} )
Si source
, transform
, anotherTransform
ou dest
ferment, tous seront détruits.
De même à stream.pipe()
, pump()
renvoie le dernier flux passé, vous pouvez donc faire:
return pump(s1, s2) // returns s2
Notez que pump
attache les gestionnaires d'erreurs aux flux pour effectuer la gestion des erreurs internes, donc si s2
émet une erreur dans le scénario ci-dessus, il ne déclenchera pas un proccess.on('uncaughtException')
si vous ne l'écoutez pas.
Si vous souhaitez retourner un flux qui combine S1 et S2 en un seul flux, utilisez Pumpify à la place.
Mit
pump
fait partie de la collection d'utilité des flux du Mississippi qui comprend des modules de flux plus utiles similaires à celui-ci.
Disponible dans le cadre de l'abonnement Tidelift.
Les mainteneurs de Pump et des milliers d'autres packages travaillent avec Tidelift pour fournir un support commercial et une maintenance pour les dépendances open source que vous utilisez pour créer vos applications. Économisez du temps, réduisez les risques et améliorez la santé du code, tout en payant les maintenseurs des dépendances exactes que vous utilisez. Apprendre encore plus.