Răsfoiți Sursa

Find more ways to destroy streams

Simon Detheridge 6 ani în urmă
părinte
comite
60ede0bf46
1 a modificat fișierele cu 6 adăugiri și 2 ștergeri
  1. 6 2
      services/filestore/app/js/PersistorHelper.js

+ 6 - 2
services/filestore/app/js/PersistorHelper.js

@@ -106,11 +106,12 @@ function getReadyPipeline(...streams) {
 
         lastStream.removeListener('readable', handler)
         if (err) {
-          return reject(
+          reject(
             wrapError(err, 'error before stream became ready', {}, ReadError)
           )
+        } else {
+          resolve(lastStream)
         }
-        resolve(lastStream)
       }
       if (err) {
         for (const stream of streams) {
@@ -121,6 +122,9 @@ function getReadyPipeline(...streams) {
       }
     }
 
+    for (let index = 0; index < streams.length - 1; index++) {
+      streams[index + 1].on('close', () => streams[index].destroy())
+    }
     pipeline(...streams).catch(handler)
     lastStream.on('readable', handler)
   })