From 232fbcafa863a3c28ab907b112c5257f0b6dc8f1 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 26 Oct 2021 21:40:36 +0200 Subject: chore(web): refactor websocket state machine --- language-web/src/main/js/editor/PendingRequest.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'language-web/src/main/js/editor/PendingRequest.ts') diff --git a/language-web/src/main/js/editor/PendingRequest.ts b/language-web/src/main/js/editor/PendingRequest.ts index 784f06ec..49d4c36c 100644 --- a/language-web/src/main/js/editor/PendingRequest.ts +++ b/language-web/src/main/js/editor/PendingRequest.ts @@ -9,16 +9,24 @@ export class PendingRequest { private readonly rejectCallback: (reason?: unknown) => void; + private readonly timeoutCallback: () => void; + private resolved = false; private timeoutId: NodeJS.Timeout; - constructor(resolve: (value: unknown) => void, reject: (reason?: unknown) => void) { + constructor( + resolve: (value: unknown) => void, + reject: (reason?: unknown) => void, + timeout: () => void, + ) { this.resolveCallback = resolve; this.rejectCallback = reject; + this.timeoutCallback = timeout; this.timeoutId = setTimeout(() => { if (!this.resolved) { this.reject(new Error('Request timed out')); + this.timeoutCallback(); } }, REQUEST_TIMEOUT_MS); } -- cgit v1.2.3-70-g09d2