在Angular中更新Observable计时器

时间:2018-01-24 09:50:42

标签: angular typescript observable

我想动态更改Observable计时器设置。

    this.speed = 1000;
    let timer = Observable.timer(1, this.speed);

    sub = timer.subscribe(t => {
        if (t == 10) {
            this.speed = 500;
        }
    });

例如,如果在X秒后,我设置了this.speed = 500

上面的例子不起作用。是否有可能,或者我必须取消订阅这个并创建一个新的?

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

createDelayedObservable(delay: number): Observable<any> {
  return Observable.of('value').delay(delay);
}

sub  = createDelayedObservable(1000).subscribe(res => {/* ... */ });

答案 1 :(得分:0)

当前使用给定时间创建了Observable。您无法更改给定时间以影响可观察量。所以你需要取消订阅并创建另一个。