I attempted to save the current timestamp using Date.now() after invoking a callback with setInterval. Following that, I aimed to stop the interval from firing repeatedly by clearing it, all within a class structure. However, the variable where I stored the interval ID and expected it to be accessible "class-wide" remains undefined. I am certain that there is some issue with JavaScript scope, but I am unable to pinpoint it.
class Signal {
t : number;
private intervallId : number | undefined;
constructor(t : number) {
this.t = t;
}
wait() {
this.intervallId = setInterval(this.signalTriggered, this.t)
console.log("Never executed.")
}
signalTriggered() {
const triggerTime : number = Date.now()
console.log(this.intervallId) /* always undefined */
if (this.intervallId) {clearInterval(this.intervallId)
console.log(triggerTime); }
}
}
var timer = new Signal(2000)
timer.wait()
console.log("Done.") /* Never printed out. */