diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 86e7082b1d..5643488b52 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -45,8 +45,8 @@ export default class WebPlatform extends VectorBasePlatform { public constructor() { super(); - // noinspection JSIgnoredPromiseFromCall - can run async - this.tryRegisterServiceWorker(); + // Register the service worker in the background + this.tryRegisterServiceWorker().catch((e) => console.error("Error registering/updating service worker:", e)); } private async tryRegisterServiceWorker(): Promise { @@ -55,15 +55,14 @@ export default class WebPlatform extends VectorBasePlatform { } // sw.js is exported by webpack, sourced from `/src/serviceworker/index.ts` - const swPromise = navigator.serviceWorker.register("sw.js"); - if (!swPromise) { - // Registration didn't return a promise for some reason - assume failed and ignore. + const registration = await navigator.serviceWorker.register("sw.js"); + if (!registration) { + // Registration didn't work for some reason - assume failed and ignore. // This typically happens in Jest. return; } - + try { - const registration = await swPromise; await registration.update(); navigator.serviceWorker.addEventListener("message", this.onServiceWorkerPostMessage.bind(this)); } catch (e) {