Die Pumpe ist ein kleines Knotenmodul, das sich zusammenströmt und alle zerstört, wenn einer von ihnen schließt.
npm install pump
Bei Verwendung von Standard source.pipe(dest)
Quelle wird nicht zerstört, wenn Dests schließen oder einen Fehler abgibt. Sie sind auch nicht in der Lage, einen Rückruf anzugeben, um festzustellen, wann Pipe beendet ist.
Pump macht diese beiden Dinge für Sie
Geben Sie einfach die Streams über, die Sie zusammenfassen möchten, um zu pumpen, und fügen Sie einen optionalen Rückruf hinzu
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 )
Sie können die Pumpe verwenden, um auch mehr als zwei Ströme zusammen zu leisten
var transform = someTransformStream ( )
pump ( source , transform , anotherTransform , dest , function ( err ) {
console . log ( 'pipe finished' , err )
} )
Wenn source
, transform
, anotherTransform
oder dest
alle zerstört werden.
Ähnlich wie mit stream.pipe()
gibt pump()
den letzten Stream zurück, sodass Sie dies tun können:
return pump(s1, s2) // returns s2
Beachten Sie, dass pump
Fehlerhandler an den Streams angeschlossen werden, um die interne Fehlerbehandlung durchzuführen. Wenn s2
also einen Fehler im obigen Szenario ausgibt, wird dies nicht ein proccess.on('uncaughtException')
ausgelöst.
Wenn Sie einen Stream zurückgeben möchten, der sowohl S1 als auch S2 an einen einzelnen Stream kombiniert, verwenden Sie stattdessen Pumpify.
MIT
pump
ist Teil der Mississippi Stream -Dienstprogrammsammlung, die mehr nützliche Stream -Module enthält, die diesem ähnlich sind.
Erhältlich als Teil des Tidelift -Abonnements.
Die Pumpenbahnen und Tausende anderer Pakete arbeiten mit Tidelift zusammen, um die Open -Source -Abhängigkeiten, die Sie zum Erstellen Ihrer Anwendungen verwenden, kommerzielle Unterstützung und Wartung zu bieten. Sparen Sie Zeit, reduzieren Sie das Risiko und verbessern Sie die Gesundheit des Codes, während Sie die Wartenden der genauen Abhängigkeiten, die Sie verwenden, zahlen. Erfahren Sie mehr.