首页 > 解决方案 > RxJS 倒数计时器未达到零

问题描述

我的应用程序中有一个startCountdown()功能angular,它基本上是一个 2 分钟倒数计时器。

问题是,它没有达到零并停在0:01.

startCountdown()功能如下:

startCountdown(): void {
    const timerInterval$ = interval(1000); //1s
    const timer$ = timer(120000); //120s
    const times = 120;
    const countDown$ = timerInterval$.pipe(take(times));
    const sub = countDown$.subscribe((val) => {
      this.countdownTimer = secondsToTime(times - val);
    });
  }

这是secondsToTime()功能:

secondsToTime(seconds: number): string {
  const minute: number = Math.floor(seconds / 60);
  const second: number = seconds == 0 ? 0 : seconds % 60;

  if (second < 10) {
    return `${minute}:0${second}`;
  } else {
    return `${minute}:${second}`;
  }
}

标签: angulartypescriptrxjscountdowntimer

解决方案


好吧:interval(1000).pipe(take(120))从 0 到 119 发出 120 个值


推荐阅读