我正在尝试创建一个Angular-Nativescript共享应用程序,当计时器达到零时执行一些功能。我还希望定时器在结束值更改时重新启动/重置。
在Angular 9中,此功能与angular-countdown-timer包一起工作。
然而,自从升级到Angular 10之后,我无法通过需要一些泛型类型问题的ModuleWithProviders。
我还尝试过使用angular8-countdown-timer,它在页面加载时设置end值,而不是在页面加载之后(即使组件中的End值正在更改)。
我还尝试了一些较旧的包,如ngx-countdown-timer,但没有任何乐趣,因为它们通常会违反ModuleWithProviders限制。
我试过使用ModuleWithProviders<any>和ModuleWithProviders<unknown>,就像我在类似的帖子中看到的建议一样,但编译器只是在我面前大笑。
任何与上述任何帮助,甚至是联系作者的方式都将不胜感激。
发布于 2020-12-05 06:56:29
我不确定我是否完全理解了你的问题,但我只是updated my own angular9 project使用一个稍微更有效的计时器,我没有导入所有的rxjs。
我在页面上使用了几个计数器和几个重置。
基本上,当我启动一个计时器时,我会生成一个新的计时器,并在时间间隔过去时执行工作,然后在单击停止按钮时停止订阅。为了做你想做的,我猜你只需要从"do stuff“块内部调用.unsubscribe()函数即可。
我希望这能帮助你,或者其他来这里寻找angular 8-10中的时间的人。
import { Subscription, timer } from 'rxjs';
...
subscription: Subscription;
startTimer(){
const source = timer(1000, 2000);
this.subscription = source.subscribe(val => {
// do stuff you want when the interval ticks
}
}
stopTimer(){
this.subscription.unsubscribe();
}我的灵感来自this article。
https://stackoverflow.com/questions/64008222
复制相似问题