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);