aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/src/utils/PendingTask.ts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/frontend/src/utils/PendingTask.ts')
-rw-r--r--subprojects/frontend/src/utils/PendingTask.ts20
1 files changed, 9 insertions, 11 deletions
diff --git a/subprojects/frontend/src/utils/PendingTask.ts b/subprojects/frontend/src/utils/PendingTask.ts
index 3976bdf9..205c8452 100644
--- a/subprojects/frontend/src/utils/PendingTask.ts
+++ b/subprojects/frontend/src/utils/PendingTask.ts
@@ -14,21 +14,19 @@ export default class PendingTask<T> {
14 constructor( 14 constructor(
15 resolveCallback: (value: T) => void, 15 resolveCallback: (value: T) => void,
16 rejectCallback: (reason?: unknown) => void, 16 rejectCallback: (reason?: unknown) => void,
17 timeoutMs?: number | undefined, 17 timeoutMs: number | undefined,
18 timeoutCallback?: () => void | undefined, 18 timeoutCallback: () => void | undefined,
19 ) { 19 ) {
20 this.resolveCallback = resolveCallback; 20 this.resolveCallback = resolveCallback;
21 this.rejectCallback = rejectCallback; 21 this.rejectCallback = rejectCallback;
22 if (timeoutMs) { 22 this.timeout = setTimeout(() => {
23 this.timeout = setTimeout(() => { 23 if (!this.resolved) {
24 if (!this.resolved) { 24 this.reject(new Error('Request timed out'));
25 this.reject(new Error('Request timed out')); 25 if (timeoutCallback) {
26 if (timeoutCallback) { 26 timeoutCallback();
27 timeoutCallback();
28 }
29 } 27 }
30 }, timeoutMs); 28 }
31 } 29 }, timeoutMs);
32 } 30 }
33 31
34 resolve(value: T): void { 32 resolve(value: T): void {