【发布时间】:2020-12-28 04:12:27
【问题描述】:
我正在尝试在服务发出新的过期时间时“重置”计时器。我让它覆盖了可观察的。我不确定我是否应该“垃圾收集”可观察对象,或者是否有更好的方法来“重置”计时器。
此代码运行良好,但我不确定这是否是最佳做法
const openModal = () => {
if (this.sessionModal === null) {
this.sessionModal = this.modalService.open(SessionModalComponent, {size: 'sm', backdrop: 'static', keyboard: false});
this.sessionModal.result.then(() => this.sessionModal = null);
}
};
this.expiresAt = authService.expiresAt;
if (this.expiresAt !== null) {
this.sessionTimerSubscription
= timer(this.expiresAt.getTime() - (new Date()).getTime() - this.sessionModalOffset).subscribe(openModal);
authService.expiresAt$.subscribe((expiresAt) => {
this.expiresAt = expiresAt;
this.sessionTimerSubscription.unsubscribe();
this.sessionTimerSubscription
= timer(this.expiresAt.getTime() - (new Date()).getTime() - this.sessionModalOffset).subscribe(openModal);
});
}
【问题讨论】:
-
您需要更好地解释您要在这里完成的工作,因为目标与您在这里的内容非常不清楚。
标签: angular typescript rxjs rxjs-observables