@@ -132,9 +132,10 @@ function pipeline(...streams) {
132132 }
133133
134134 let error ;
135+ let value ;
135136 const destroys = [ ] ;
136137
137- function finish ( err , val , final ) {
138+ function finish ( err , final ) {
138139 if ( ! error && err ) {
139140 error = err ;
140141 }
@@ -146,13 +147,13 @@ function pipeline(...streams) {
146147 }
147148
148149 if ( final ) {
149- callback ( error , val ) ;
150+ callback ( error , value ) ;
150151 }
151152 }
152153
153154 function wrap ( stream , reading , writing , final ) {
154155 destroys . push ( destroyer ( stream , reading , writing , ( err ) => {
155- finish ( err , null , final ) ;
156+ finish ( err , final ) ;
156157 } ) ) ;
157158 }
158159
@@ -197,12 +198,12 @@ function pipeline(...streams) {
197198 const pt = new PassThrough ( ) ;
198199 if ( isPromise ( ret ) ) {
199200 ret
201+ . catch ( ( err ) => {
202+ pt . destroy ( err ) ;
203+ } )
200204 . then ( ( val ) => {
205+ value = val ;
201206 pt . end ( val ) ;
202- finish ( null , val , true ) ;
203- } )
204- . catch ( ( err ) => {
205- finish ( err , null , true ) ;
206207 } ) ;
207208 } else if ( isIterable ( ret , true ) ) {
208209 pump ( ret , pt , finish ) ;
@@ -212,7 +213,7 @@ function pipeline(...streams) {
212213 }
213214
214215 ret = pt ;
215- wrap ( ret , true , false , true ) ;
216+ wrap ( ret , false , true , true ) ;
216217 }
217218 } else if ( isStream ( stream ) ) {
218219 if ( isReadable ( ret ) ) {
0 commit comments