angular - 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}`;
}
}
解决方案
好吧:interval(1000).pipe(take(120))
从 0 到 119 发出 120 个值
推荐阅读
- css - 如何获得两个 div 标签之间没有空格?
- json - 从API获取数据时如何解决React js中的未定义错误?
- javascript - 如何正确测试作为 Apollo GraphQL 查询的组件?
- java - 在 CompletableFuture.join() 上对方法进行单元测试无限期阻塞
- sql-server - SQL Server 查询中的三个 Shift 明智日期时间检查
- java - 如何从 JWT 令牌身份验证中获取声明值
- powerbuilder - 查询 Powerbuilder 以获取某些复选框并输入 text/singelineedit 以获取 showig 消息框
- c++ - 如何将 crc-32 修改为 crc-32/mpeg-2
- scala - Play 2.5.x 中是否有用于捕获请求和响应以进行自定义日志记录的插件?
- c# - .Net Core 2.1 是否支持 HTTP/2 请求?