Don't send unsubscribe when already disconnected (#3192)

* Don't send unsubscribe when already disconnected

* Small cleanups
This commit is contained in:
Jaco Greeff
2021-02-20 12:37:05 +01:00
committed by GitHub
parent 5169b6ee69
commit dff859ba68
+11 -9
View File
@@ -245,8 +245,8 @@ export class WsProvider implements ProviderInterface {
* @param params Encoded parameters as applicable for the method
* @param subscription Subscription details (internally used)
*/
public send (method: string, params: any[], subscription?: SubscriptionHandler): Promise<any> {
return new Promise((resolve, reject): void => {
public send <T = any> (method: string, params: any[], subscription?: SubscriptionHandler): Promise<T> {
return new Promise<T>((resolve, reject): void => {
try {
assert(this.isConnected && !isNull(this.#websocket), 'WebSocket is not connected');
@@ -298,10 +298,8 @@ export class WsProvider implements ProviderInterface {
* })
* ```
*/
public async subscribe (type: string, method: string, params: any[], callback: ProviderInterfaceCallback): Promise<number | string> {
const id = await this.send(method, params, { callback, type }) as Promise<number | string>;
return id;
public subscribe (type: string, method: string, params: any[], callback: ProviderInterfaceCallback): Promise<number | string> {
return this.send<number | string>(method, params, { callback, type });
}
/**
@@ -322,9 +320,13 @@ export class WsProvider implements ProviderInterface {
delete this.#subscriptions[subscription];
const result = await this.send(method, [id]) as Promise<boolean>;
return result;
try {
return this.isConnected && !isNull(this.#websocket)
? this.send<boolean>(method, [id])
: true;
} catch (error) {
return false;
}
}
#emit = (type: ProviderInterfaceEmitted, ...args: any[]): void => {