From caf445cae7b60ed818ea0f53b58d0b4872f491ab Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 14 Jun 2023 12:19:33 -0400 Subject: [PATCH] Using async for polling. --- src/shared/components/app/navbar.tsx | 4 ++-- src/shared/utils.ts | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/shared/components/app/navbar.tsx b/src/shared/components/app/navbar.tsx index aa1bef26..6bad5a55 100644 --- a/src/shared/components/app/navbar.tsx +++ b/src/shared/components/app/navbar.tsx @@ -66,7 +66,7 @@ export class Navbar extends Component { if (isBrowser()) { // On the first load, check the unreads this.requestNotificationPermission(); - await this.fetchUnreads(); + this.fetchUnreads(); this.requestNotificationPermission(); document.addEventListener("mouseup", this.handleOutsideMenuClick); @@ -408,7 +408,7 @@ export class Navbar extends Component { return amAdmin() || moderatesS; } - async fetchUnreads() { + fetchUnreads() { poll(async () => { const auth = myAuth(); if (auth) { diff --git a/src/shared/utils.ts b/src/shared/utils.ts index a4a5054c..7b30390f 100644 --- a/src/shared/utils.ts +++ b/src/shared/utils.ts @@ -1499,6 +1499,8 @@ function sleep(millis: number): Promise { /** * Polls / repeatedly runs a promise, every X milliseconds */ -export function poll(promiseFn: any, millis: number) { - promiseFn().then(sleep(millis).then(() => poll(promiseFn, millis))); +export async function poll(promiseFn: any, millis: number) { + await promiseFn(); + await sleep(millis); + return poll(promiseFn, millis); }