From 951a6f9554590b2390c13615d6d7666d0e3078d8 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Wed, 31 Aug 2022 20:10:24 -0400 Subject: [PATCH] *add cancel support to streaming query *handle connectModule return properly --- src/index.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index 668759d..eb42e7e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -240,6 +240,7 @@ export class SimpleRpcQuery extends RpcQueryBase { export class StreamingRpcQuery extends SimpleRpcQuery { protected _options: StreamingRpcQueryOptions; + private _sendUpdate?: DataFn; constructor( network: RpcNetwork, @@ -252,9 +253,15 @@ export class StreamingRpcQuery extends SimpleRpcQuery { this._queryType = "streamingQuery"; } + public cancel() { + if (this._sendUpdate) { + this._sendUpdate({ cancel: true }); + } + } + public run(): this { - this._promise = this._network.processQueue().then(() => - connectModule( + this._promise = this._network.processQueue().then(() => { + const ret = connectModule( RPC_MODULE, this._queryType, { @@ -264,8 +271,10 @@ export class StreamingRpcQuery extends SimpleRpcQuery { network: this._network.networkId, }, this._options.streamHandler - ) - ); + ); + this._sendUpdate = ret[0]; + return ret[1]; + }); return this; }