Итак, я новичок в RXJS. Я пытаюсь настроить таймер истечения сеанса, и когда пользователь получает модальное сообщение о том, что срок его сеанса истекает, если он нажимает «Продолжить», таймер сбрасывается.
Я читал о switchMap и switchMapTo, но примеры, которые я нашел, используют какое-то событие щелчка или событие перемещения мыши. Моя ситуация такова: я не хочу обновляться при нажатии кнопки, так как я проверяю JWT. После успешной проверки JWT я обновлю таймер.
У меня есть общая библиотека для пользователей, которая настраивает таймер следующим образом:
private tick: Subscription;
public tokenExpirationTime: Subject<number>;
setupExpirationTimer():void {
// Start the timer based on the expiration
var expirationSeconds = this.expiration * 60;
this.tick = Observable.timer(0, 1000).map(i => expirationSeconds - i).subscribe(x => {
// Set the seconds in the user object
this.tokenExpirationTime.next(x);
console.log("TIMER: " + x);
});
}
В другом месте моего кода я подписываюсь на tokenExpirationTime (именно так я узнаю, какое текущее время на таймере, поэтому я знаю, когда показывать свое всплывающее окно).
Ex.
this.user.tokenExpirationTime.subscribe(x => { ... });
Я мог бы делать все это неправильно, так как я новичок в этом. Я надеюсь, что мое объяснение понятно, но дайте мне знать, если нет. Спасибо вам за помощь!