From f9f06ef13ab9d3ca43e2485559250e4d77328228 Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Mon, 4 Dec 2017 21:38:52 -0800 Subject: [PATCH] Expose stream end event to client --- javascript/net/grpc/web/clientreadablestream.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/javascript/net/grpc/web/clientreadablestream.js b/javascript/net/grpc/web/clientreadablestream.js index c82a56a..9b49c76 100644 --- a/javascript/net/grpc/web/clientreadablestream.js +++ b/javascript/net/grpc/web/clientreadablestream.js @@ -67,6 +67,13 @@ grpc.web.ClientReadableStream = function( */ this.onStatusCallback_ = null; + /** + * @private + * @type {function(...):?|null} + * The stream end callback + */ + this.onEndCallback_ = null; + /** * @private * @type {function(?):!grpc.web.Status} @@ -87,6 +94,11 @@ grpc.web.ClientReadableStream = function( self.onStatusCallback_(status); } }); + this.xhrNodeReadableStream_.on('end', function() { + if (self.onEndCallback_) { + self.onEndCallback_(); + } + }); }; @@ -105,6 +117,8 @@ grpc.web.ClientReadableStream.prototype.on = function( this.onDataCallback_ = callback; } else if (eventType == 'status') { this.onStatusCallback_ = callback; + } else if (eventType == 'end') { + this.onEndCallback_ = callback; } return this; };