From 63fd366fd3165d4455763dcdfe596d1aaa12e6ca Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Mon, 1 Nov 2021 12:17:18 -0700 Subject: [PATCH] Clean up timeout in `waitForOnline` Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com> --- 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 1e2ecfc6360..f8770b82c4e 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);