首页 > 解决方案 > Angular RXJS 从另一种方法停止运行间隔

问题描述

现在我有一个开始和间隔的方法。

这是代码:

interval: number = 5000;

start() {
    const myNumber = interval(this.interval);
    myNumber.subscribe(
      (number: number) => {
        console.log(number);
      }
    );
}

我想添加另一种方法来停止这个间隔:

stop() {
    // stop the myNumber interval
}

我怎样才能做到这一点?

标签: angulartypescriptrxjs

解决方案


您可以使用 asubject或包裹subjectin function,并使用takeUntilto stop

interval: number = 5000;
stop=new Subject();
start() {
    const myNumber = interval(this.interval).pipe(takeUntil(this.stop);
}

//stop the interval
stop.next(true)

推荐阅读