было выполнить?. Пытаюсь сделать class таймера с компенсацией времени, в который нужно передавать callback для clearInterval. сейчас пишет this.callback is not a function
export class IntervalTimer {
constructor(callback, interval = 1000) {
this.counter = 1;
this.startTime = Date.now();
this.timeoutId = setTimeout(this.main, interval);
this.callback = callback;
}
main(callback, interval) {
const nowTime = Date.now();
const nextTime = this.startTime + this.counter * interval;
this.timeoutId = setTimeout(this.main, interval - (nowTime - nextTime));
this.counter += 1;
this.callback();
}
clear() {
clearTimeout(this.timeoutId);
}
}
https://learn.javascript.ru/bind
Возможно у тебя this не является тем обьектом который ты хочешь, так как контекст теряется.
Обсуждают сегодня