From 5289e60d050830a3e66a44746545f07ceaa50144 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 15 Jan 2025 21:42:33 -0800 Subject: [PATCH] add binding of function and timer --- src/loaders/RepositoryDataLoader.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index 42b245d..05b58ba 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -22,10 +22,13 @@ const baseUrl = "https://passiogo.com/mapGetData.php"; export class RepositoryDataLoader { private shouldBeRunning: boolean = false; + private timer: any; constructor( private repository: GetterSetterRepository, - ) {} + ) { + this.startFetchDataAndUpdate = this.startFetchDataAndUpdate.bind(this); + } public async start() { if (this.shouldBeRunning) { @@ -52,9 +55,9 @@ export class RepositoryDataLoader { await this.fetchAndUpdateEtaDataForExistingOrderedStops(); } catch (e) { console.error(e); - } finally { - setTimeout(this.startFetchDataAndUpdate, timeout); } + + this.timer = setTimeout(this.startFetchDataAndUpdate, timeout); } private async fetchAndUpdateSystemData() {