From 9ea8a456f26a9205b0f741f4f1b7e6ee24052d5a Mon Sep 17 00:00:00 2001 From: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com> Date: Mon, 1 Nov 2021 13:38:26 -0500 Subject: [PATCH] Clean up timeout in `waitForOnline` --- ts/util/waitForOnline.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ts/util/waitForOnline.ts b/ts/util/waitForOnline.ts index 1e2ecfc636..f8770b82c4 100644 --- a/ts/util/waitForOnline.ts +++ b/ts/util/waitForOnline.ts @@ -14,6 +14,8 @@ export function waitForOnline( return; } + let timeoutId: undefined | ReturnType; + const listener = () => { cleanup(); resolve(); @@ -21,12 +23,15 @@ export function waitForOnline( const cleanup = () => { onlineEventTarget.removeEventListener('online', listener); + if (typeof timeoutId === 'number') { + clearTimeout(timeoutId); + } }; onlineEventTarget.addEventListener('online', listener); if (timeout !== undefined) { - setTimeout(() => { + timeoutId = setTimeout(() => { cleanup(); reject(new Error('waitForOnline: did not come online in time')); }, timeout);