Как остановить таймер rxjs - PullRequest
       1

Как остановить таймер rxjs

0 голосов
/ 21 февраля 2019

У меня есть следующий таймер:

setCountDown() {
        let counter = 5;
        let tick = 1000;
        this.countDown = timer(0, tick)
        .pipe(
          take(counter),
          map(() => --counter),
          finalize(() => {
            if (this.currentQuestionNumber < this.questionsToAsk)
              this.showNextQuestion();
            else {
              this.endQuiz();
            }

          })
        );
      }

Как я могу остановить таймер?Например, когда пользователь нажимает кнопку ...

1 Ответ

0 голосов
/ 21 февраля 2019

при условии, что вы используете angular, если вы используете только javascript, вы можете просто использовать fromEvent() для создания userClick

userClick=new Subject()

click(){userClick.next()}

setCountDown() {
        let counter = 5;
        let tick = 1000;
        this.countDown = timer(0, tick)
        .pipe(
          take(counter),
          map(() => --counter),
          takeUntil(userClick),
          finalize(() => {
            if (this.currentQuestionNumber < this.questionsToAsk)
              this.showNextQuestion();
            else {
              this.endQuiz();
            }

          })
        );
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...