首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何停止间歇计时器?

如何停止间歇计时器?
EN

Stack Overflow用户
提问于 2019-03-16 22:51:54
回答 1查看 2.6K关注 0票数 0

当你移动到角7的另一个部件时,停止间隔是怎样的:

代码语言:javascript
复制
public s: Observable<any>;

this.s = interval(5000)
      .pipe(takeWhile(() => this.visitors.length > 0))
      .subscribe(() => {});

我试图在组件析构函数中停止间隔:

代码语言:javascript
复制
   ngOnDestroy() {
      this.s.unsubscribe();
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 06:30:33

你犯了两个错误,让我来描述一下:

  • 调用subscribe()函数不返回Observablepipe返回。
  • 使用unsubscribe不会停止间隔。

我使用的是setInterval,而不是间隔,例如:

代码语言:javascript
复制
timer: any;

ngOnInit() {
    this.timer = setInterval(() => {
        // here do whatever you want every 5 seconds
    }, 5000);
}

并使用clearInterval函数onDestroy;例如:

代码语言:javascript
复制
ngOnDestroy() {
    clearInterval(this.timer);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55202289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档