typescript window.setInterval()工作不正常

typescript window.setInterval() not working properly

本文关键字:工作 不正常 window setInterval typescript      更新时间:2023-09-26

我的window.setInterval()方法有问题。下面是一个结构示例,方法"repeat"被重复调用,但我不能调用"repeat"中的任何方法。在这个例子中,当我实例化管理器(let m=new manager())时,它会打印"打印之前",但不会从printStuff方法或"打印之后"消息中打印出日志。

有人知道为什么会发生这种事吗?显然,这不是我的实际代码,因为它足够简单,不在单独的函数中,但是我的实际编码需要调用"repeat"函数中的许多函数,当它发现对另一个函数的调用时,它将停止执行。

class manager{
constructor(){
    window.setInterval(this.repeat, 5000);
}
repeat(){
    console.log("Before Print");
    this.printStuff();
    console.log("After Print");
}
printStuff(){
    console.log("Print Stuff");
}

Set interval将取this.repeat脱离上下文,您需要使用显式"绑定"方法

setInterval(this.repeat.bind(this), 5000)

setInterval(()=>this.repeat(), 5000)