50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
export class TimerUtils {
|
|
|
|
// private static debounceTimers: DebounceTimer[];
|
|
|
|
// private static addDebounceTimer(key: string, debounceTime: number, callback: Function) {
|
|
// if (!this.debounceTimers) {
|
|
// this.debounceTimers = [];
|
|
// }
|
|
// let timerProfile = this.debounceTimers.find(t => t.key == key);
|
|
// if (timerProfile) {
|
|
// clearTimeout(timerProfile.timer);
|
|
// } else {
|
|
// timerProfile = new DebounceTimer(){
|
|
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
export class DebounceTimer {
|
|
|
|
constructor(
|
|
debounceTime: number,
|
|
callback: Function
|
|
) {
|
|
//this.key = key
|
|
this.debounceTime = debounceTime;
|
|
this.callback = callback;
|
|
//this.resetTimer();
|
|
}
|
|
|
|
debounceTime: number;
|
|
timer: any;
|
|
callback: Function;
|
|
resetTimer() {
|
|
if (this.timer) {
|
|
clearTimeout(this.timer);
|
|
}
|
|
this.timer = setTimeout(() => {
|
|
this.callback();
|
|
this.timer = null;
|
|
}, this.debounceTime);
|
|
}
|
|
clearOut() {
|
|
if (this.timer) {
|
|
clearTimeout(this.timer);
|
|
}
|
|
}
|
|
} |