File tree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -64,10 +64,21 @@ function onFinished (msg, listener) {
6464
6565function isFinished ( msg ) {
6666 var socket = msg . socket
67+ var stream = msg . stream
68+
69+ if ( stream && typeof stream . closed === 'boolean' ) {
70+ // Http2ServerRequest
71+ // Http2ServerResponse
72+ return stream . closed
73+ }
6774
6875 if ( typeof msg . finished === 'boolean' ) {
6976 // OutgoingMessage
70- return Boolean ( msg . finished || ( socket && ! socket . writable ) )
77+ return (
78+ msg . finished &&
79+ msg . outputSize === 0 &&
80+ ( ! socket || socket . writableLength === 0 )
81+ ) || ( socket && ! socket . writable )
7182 }
7283
7384 if ( typeof msg . complete === 'boolean' ) {
Original file line number Diff line number Diff line change @@ -219,8 +219,8 @@ describe('isFinished(res)', function () {
219219
220220 it ( 'should be false before response finishes' , function ( done ) {
221221 var server = http . createServer ( function ( req , res ) {
222- assert . ok ( ! onFinished . isFinished ( res ) )
223222 res . end ( )
223+ assert . ok ( ! onFinished . isFinished ( res ) )
224224 done ( )
225225 } )
226226
You can’t perform that action at this time.
0 commit comments