【问题标题】:Ionic 2 Observable.timer destroyed on back buttonIonic 2 Observable.timer 在后退按钮上被破坏
【发布时间】:2018-05-20 23:21:25
【问题描述】:

我有一个Observable.timer 倒计时,当用户离开页面时,如果他们决定稍后再回来,我希望该计时器仍然处于活动状态。例如,我只希望在达到特定日期 和时间时删除计时器。

我试图实现这一点,但是当我单击返回按钮时,计时器被破坏并且 endTimer() 回调被调用。

定时器功能

   countDown: any;
   counter = 1*900;
   tick = 1000;

 newtimer() {
   // create session 
   this.storage.set('dateCreated', 'timer_started');
   // create timer
   this.countDown = Observable.timer(0, this.tick)
      .take(this.counter)
      .map(() => --this.counter).finally(() => this.endTimer()); 
 }

【问题讨论】:

  • 这是针对特定页面的吗?还是更像是整个应用程序的会话?你在哪里调用你的函数newtimer()
  • 听起来您在组件/页面中具有此功能,而它在服务中会更好地为您服务。
  • 用于特定页面。在页面的构造函数中调用,带有定时器功能

标签: angular ionic-framework ionic2


【解决方案1】:

当您将页面留在 ionic 中时,它将被销毁。因此,作为该页面的成员 var 的计时器被销毁。

如果你想让计时器继续运行,你应该把它放在一些服务中。因为服务是单例的,所以在页面被移除时不会被销毁。

【讨论】:

  • 我已将其添加到服务中,但当我退出页面时计时器仍会结束,如果我尝试重新进入它会从头开始重新开始
  • 如何导入和注入服务?
猜你喜欢
  • 2016-08-20
  • 2014-04-25
  • 1970-01-01
  • 2017-06-20
  • 2012-05-16
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多