0

我正在尝试创建一个 Angular-Nativescript 共享应用程序,该应用程序在计时器达到零时执行某些功能。我还希望在更改结束值时重新启动/重置计时器。

在 Angular 9 中,此功能与angular-countdown-timer包一起使用。

但是,自从升级到 Angular 10 后,我无法解决ModuleWithProviders需要一些泛型类型的问题。

我也尝试过使用angular8-countdown-timer,它在页面加载时设置最终值但之后不起作用(即使组件中的最终值正在更改)。

我还尝试了一些较旧的软件包,例如ngx-countdown-timer,但没有任何乐趣,因为它们通常会违反ModuleWithProviders限制。

我试过使用ModuleWithProviders<any>ModuleWithProviders<unknown>正如我在类似帖子中看到的那样,但编译器只是在我面前笑了。

任何上述任何帮助,甚至是联系作者的方式都将不胜感激。

4

1 回答 1

0

我不确定我是否完全理解你的问题,但我刚刚更新了我自己的 angular9 项目以使用更高效的计时器,我没有导入所有 rxjs。

我在页面上使用了几个计数器并进行了几次重置。

本质上,当我启动一个计时器时,我会生成一个新计时器,并在间隔过去时工作,然后在单击停止按钮时停止订阅。为了做你想做的事,我猜你只是.unsubscribe()从“do stuff”块内部调用函数。

我希望这对您或其他来这里寻找角度 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();
  }

我的灵感来自这篇文章

于 2020-12-04T22:56:28.820 回答