@@ -67,8 +67,12 @@ function buffer(ReadableStreamInterface $stream, $maxLength = null)
6767
6868 $ stream ->on ('data ' , $ bufferer );
6969
70- $ stream ->on ('error ' , function ($ error ) use ($ reject ) {
71- $ reject (new \RuntimeException ('An error occured on the underlying stream while buffering ' , 0 , $ error ));
70+ $ stream ->on ('error ' , function (\Exception $ e ) use ($ reject ) {
71+ $ reject (new \RuntimeException (
72+ 'An error occured on the underlying stream while buffering: ' . $ e ->getMessage (),
73+ $ e ->getCode (),
74+ $ e
75+ ));
7276 });
7377
7478 $ stream ->on ('close ' , function () use ($ resolve , &$ buffer ) {
@@ -78,7 +82,7 @@ function buffer(ReadableStreamInterface $stream, $maxLength = null)
7882 $ reject (new \RuntimeException ('Cancelled buffering ' ));
7983 });
8084
81- return $ promise ->then (null , function ($ error ) use (&$ buffer , $ bufferer , $ stream ) {
85+ return $ promise ->then (null , function (\ Exception $ error ) use (&$ buffer , $ bufferer , $ stream ) {
8286 // promise rejected => clear buffer and buffering
8387 $ buffer = '' ;
8488 $ stream ->removeListener ('data ' , $ bufferer );
@@ -140,9 +144,13 @@ function first(EventEmitterInterface $stream, $event = 'data')
140144 $ stream ->on ($ event , $ listener );
141145
142146 if ($ event !== 'error ' ) {
143- $ stream ->on ('error ' , function ($ error ) use ($ stream , $ event , $ listener , $ reject ) {
147+ $ stream ->on ('error ' , function (\ Exception $ e ) use ($ stream , $ event , $ listener , $ reject ) {
144148 $ stream ->removeListener ($ event , $ listener );
145- $ reject (new \RuntimeException ('An error occured on the underlying stream while waiting for event ' , 0 , $ error ));
149+ $ reject (new \RuntimeException (
150+ 'An error occured on the underlying stream while waiting for event: ' . $ e ->getMessage (),
151+ $ e ->getCode (),
152+ $ e
153+ ));
146154 });
147155 }
148156
@@ -207,8 +215,12 @@ function all(EventEmitterInterface $stream, $event = 'data')
207215 $ stream ->on ($ event , $ bufferer );
208216
209217 $ promise = new Promise \Promise (function ($ resolve , $ reject ) use ($ stream , &$ buffer ) {
210- $ stream ->on ('error ' , function ($ error ) use ($ reject ) {
211- $ reject (new \RuntimeException ('An error occured on the underlying stream while buffering ' , 0 , $ error ));
218+ $ stream ->on ('error ' , function (\Exception $ e ) use ($ reject ) {
219+ $ reject (new \RuntimeException (
220+ 'An error occured on the underlying stream while buffering: ' . $ e ->getMessage (),
221+ $ e ->getCode (),
222+ $ e
223+ ));
212224 });
213225
214226 $ stream ->on ('close ' , function () use ($ resolve , &$ buffer ) {
0 commit comments