From bc19db9ddd890eb01fdcf4697b43f1009292f610 Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Sun, 11 Oct 2020 21:03:52 -0700 Subject: [PATCH] Proposed 1.8.2-beta.0 (#1316) * Clear awaiting response promises when handled (#1302) Co-authored-by: Elliot Lee Co-authored-by: southbite --- package.json | 2 +- src/common/connection.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 226c3053..e161f7f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ripple-lib", - "version": "1.8.1", + "version": "1.8.2-beta.0", "license": "ISC", "description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser", "files": [ diff --git a/src/common/connection.ts b/src/common/connection.ts index 332ecf14..d392184f 100644 --- a/src/common/connection.ts +++ b/src/common/connection.ts @@ -225,18 +225,21 @@ class RequestManager { cancel(id: number) { const {timer} = this.promisesAwaitingResponse[id] clearTimeout(timer) + delete this.promisesAwaitingResponse[id] } resolve(id: number, data: any) { const {timer, resolve} = this.promisesAwaitingResponse[id] clearTimeout(timer) resolve(data) + delete this.promisesAwaitingResponse[id] } reject(id: number, error: Error) { const {timer, reject} = this.promisesAwaitingResponse[id] clearTimeout(timer) reject(error) + delete this.promisesAwaitingResponse[id] } rejectAll(error: Error) { @@ -278,7 +281,7 @@ class RequestManager { throw new ResponseFormatError('valid id not found in response', data) } if (!this.promisesAwaitingResponse[data.id]) { - throw new ResponseFormatError('response handler not found', data) + return } if (data.status === 'error') { const error = new RippledError(data.error_message || data.error, data)