Added cancel to surface calls

This commit is contained in:
murgatroid99 2015-01-26 12:57:10 -08:00
parent b8b34fdaed
commit d85ad3ecdb
2 changed files with 21 additions and 0 deletions

View File

@ -160,6 +160,14 @@ GrpcClientStream.prototype._write = function(chunk, encoding, callback) {
}, 0); }, 0);
}; };
/**
* Cancel the ongoing call. If the call has not already finished, it will finish
* with status CANCELLED.
*/
GrpcClientStream.prototype.cancel = function() {
self._call.cancel();
};
/** /**
* Make a request on the channel to the given method with the given arguments * Make a request on the channel to the given method with the given arguments
* @param {grpc.Channel} channel The channel on which to make the request * @param {grpc.Channel} channel The channel on which to make the request

View File

@ -128,6 +128,16 @@ function _write(chunk, encoding, callback) {
*/ */
ClientWritableObjectStream.prototype._write = _write; ClientWritableObjectStream.prototype._write = _write;
/**
* Cancel the underlying call
*/
function cancel() {
this._stream.cancel();
}
ClientReadableObjectStream.prototype.cancel = cancel;
ClientWritableObjectStream.prototype.cancel = cancel;
/** /**
* Get a function that can make unary requests to the specified method. * Get a function that can make unary requests to the specified method.
* @param {string} method The name of the method to request * @param {string} method The name of the method to request
@ -155,6 +165,9 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
var stream = client.makeRequest(this.channel, method, serialize, var stream = client.makeRequest(this.channel, method, serialize,
deserialize, metadata, deadline); deserialize, metadata, deadline);
var emitter = new EventEmitter(); var emitter = new EventEmitter();
emitter.cancel = function cancel() {
stream.cancel();
};
forwardEvent(stream, emitter, 'status'); forwardEvent(stream, emitter, 'status');
forwardEvent(stream, emitter, 'metadata'); forwardEvent(stream, emitter, 'metadata');
stream.write(argument); stream.write(argument);