Ich habe eine JavaScript-Klasse, die Ereignisse gelegentlich veröffentlichen muss. Der Code sieht wie folgt aus:Zugriff auf Klassenvariable in setTimeout-Funktion
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" };
Die Frage ist, in den SetTimeout calllback Funktionen, die this
Umfang Punkte auf window
so bin ich nicht in der Lage this.Broadcast
zuzugreifen. Was ist der beste Weg, dies zu strukturieren, damit ich Zugang zu allem habe, was ich brauche?