eri*_*n30 0 javascript angular
我有一个必须经常发布事件的 JavaScript 类。代码如下所示:
class TimerService {
constructor(BroadcastService) {
this.Broadcast = BroadcastService;
this.timeout;
this.warningTimer;
this.startTimer();
}
startTimer() {
clearTimeout(this.timeout);
clearTimeout(this.warningTimer);
this.timeout = setTimeout(this.startWarning, 30000);
}
startWarning() {
this.Broadcast.send("timeout-warning");
this.warningTimer = setTimeout(this.logout, 60000);
}
logout() {
this.Broadcast.send("session-expired");
}
}
export default { service: TimerService, name: "TimerService" };
Run Code Online (Sandbox Code Playgroud)
问题是,在 setTimeout 回调函数中,this范围指向window所以我无法访问this.Broadcast. 什么是构建它的最佳方式,以便我可以访问我需要的一切?