首页 > 解决方案 > 重置 Observable.timer()

问题描述

我尝试制作我的计时器,但是遇到了一个问题,我无法理解如何重置(刷新)我的计时器。

startTimer() {
Observable.timer(this.countDownDuration, 1000)
        .map(i => this.countDownDuration - i)
        .take(this.countDownDuration + 1)
        .subscribe(i => {
          this.countDown = i;
          console.log(this.countDown);
        });
}

resetTimer() {
  must stop previous timer and start new 
}

有什么建议么

标签: angularrxjs

解决方案


const s = new BehaviorSubject(null);

s.switchMap(() => Observable.timer(this.countDownDuration, 1000))
  .map(...)
  ...
  .subscribe(...);

resetTimer() {
  s.next();
}

推荐阅读