diff options
Diffstat (limited to 'subprojects/frontend/src/utils/PendingTask.ts')
-rw-r--r-- | subprojects/frontend/src/utils/PendingTask.ts | 20 |
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 { |