diff options
Diffstat (limited to 'frontend/ts/timer.ts')
| -rw-r--r-- | frontend/ts/timer.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/frontend/ts/timer.ts b/frontend/ts/timer.ts new file mode 100644 index 0000000..f8dab25 --- /dev/null +++ b/frontend/ts/timer.ts @@ -0,0 +1,30 @@ +export default class Timer { + divTimer!: HTMLElement; + + interval!: any; + async start(playerIndex: number, finishTime: number): Promise<void> { + return new Promise(resolve => { + let divTimer = document.getElementById(`${playerIndex}-player-time`); + if (divTimer === null) + throw new Error("divTimer doesn't Exist"); + else + this.divTimer = divTimer; + + this.interval = setInterval(() => { + this.updateDisplay(finishTime - Date.now(), resolve); + }, 1000); + }) + } + + updateDisplay(time: number, resolve: Function): void { + let secondsElapsed = Math.floor(time / 1000); + this.divTimer.innerHTML = secondsElapsed.toString(); + if (secondsElapsed === 0) { + resolve(); + clearInterval(this.interval); + } + } + stop(): void { + clearInterval(this.interval); + } +}
\ No newline at end of file |
