blob: f8dab253361816d1497111645a0a959c8de82ae8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
}
}
|