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) {
64
64
65
65
function isFinished ( msg ) {
66
66
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
+ }
67
74
68
75
if ( typeof msg . finished === 'boolean' ) {
69
76
// OutgoingMessage
70
- return Boolean ( msg . finished || ( socket && ! socket . writable ) )
77
+ return (
78
+ this . finished &&
79
+ this . outputSize === 0 &&
80
+ ( ! this . socket || this . socket . writableLength === 0 )
81
+ ) || ( socket && ! socket . writable )
71
82
}
72
83
73
84
if ( typeof msg . complete === 'boolean' ) {
Original file line number Diff line number Diff line change @@ -219,8 +219,8 @@ describe('isFinished(res)', function () {
219
219
220
220
it ( 'should be false before response finishes' , function ( done ) {
221
221
var server = http . createServer ( function ( req , res ) {
222
- assert . ok ( ! onFinished . isFinished ( res ) )
223
222
res . end ( )
223
+ assert . ok ( ! onFinished . isFinished ( res ) )
224
224
done ( )
225
225
} )
226
226
You can’t perform that action at this time.
0 commit comments