diff --git a/lib/OutgoingFrameStream.js b/lib/OutgoingFrameStream.js index 3e7a774..8c862b3 100644 --- a/lib/OutgoingFrameStream.js +++ b/lib/OutgoingFrameStream.js @@ -202,7 +202,7 @@ function service(stream) { if (stream._destinationFinished) { const error = new Error('cannot send frame on closed stream'); stream._frame.emit('error', error); - dequeue(stream); + setTimeout(dequeue.bind(this, stream), 0); return; } @@ -226,12 +226,12 @@ function service(stream) { if (!error) { // Attempt next write operation - service(stream); + setTimeout(service.bind(this, stream), 0); } else { // Send errors to subsequent write cbs and let the next // frame attempt to write and cause an error - dequeue(stream); + setTimeout(dequeue.bind(this, stream), 0); } }