utils.ts -> Throttler.ts
This commit is contained in:
parent
20de548763
commit
c8a38cdd83
17
frontend/src/Throttler.ts
Normal file
17
frontend/src/Throttler.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
export class Throttler {
|
||||||
|
private hasBeenCalledWithinTime = false;
|
||||||
|
private lastCallFunc: (() => any) | null = null;
|
||||||
|
|
||||||
|
public constructor(private minimumTimeBetweenCall: number) {}
|
||||||
|
|
||||||
|
public call(func: () => any) {
|
||||||
|
this.lastCallFunc = func;
|
||||||
|
if (this.hasBeenCalledWithinTime) return;
|
||||||
|
this.hasBeenCalledWithinTime = true;
|
||||||
|
func();
|
||||||
|
setTimeout(() => {
|
||||||
|
this.hasBeenCalledWithinTime = false;
|
||||||
|
if (this.lastCallFunc) this.lastCallFunc();
|
||||||
|
}, this.minimumTimeBetweenCall);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user