[英]Angular rxjs Observable.interval() not triggering properly on background tabs in Chrome
我正在编写angular2应用程序,通过RxJs observables实现间隔计时器,并且当tab在后台时,只注意到Chrome浏览器中Observable.interval()和Observable.timer()的奇怪行为。 Angular组件应该在控制台中每隔一秒打印一次秒,但在背景选项卡上,这不能按预期工作 - 函数每x + 1秒触发一次,其中x是间隔函数中明确指定的间隔
角度组件代码:
ngOnInit() {
let a = Observable.interval(1000).subscribe(() => {
let date = new Date();
console.log(date.getSeconds());
});
}
示例:tab1上的控制台输出(带有定义如上的定时器的选项卡):
37 <- tab1 (with timer)
38
39
40
41 <- changed tab to tab2
43
45
47
49
51
53
55
57
59 <- changed tab to tab1
0
1
2
3
Mozzila FF没有问题。
我认为这种行为是浏览器中背景标签优先级较低的结果,但为什么间隔总是推迟一秒呢?
但是,如果使用setInterval()
,则任何浏览器都没有问题。
ngOnInit() {
setInterval(()=>{
console.log(new Date())
},1000)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.