【问题标题】:Object(...)(...).takeUntil is not a functionObject(...)(...).takeUntil 不是函数
【发布时间】:2019-04-03 20:33:18
【问题描述】:

我有间隔和 takeuntil 的 observable,它在 angular 5 中工作正常。现在当我将它更新到 angular 6 和 rxjs6 时,它失败了。 我从 Observable.interval 更改为 interval 但 takeuntil 不起作用。 我需要 takeuntil 因为,当组件被销毁时,我需要停止这个 observable。

import { Observable, Subject } from "rxjs";

private onDestroy$ = new Subject<void>();

Observable.interval(600000).takeUntil(this.onDestroy$).subscribe(x => {
    // do something
});

ngOnDestroy() {
    this.onDestroy$.next();
}

【问题讨论】:

标签: angular rxjs angular6 rxjs6


【解决方案1】:

从 RXJS 6 开始,您必须通过管道传输运算符并从 rxjs/operators 导入它们。 另外,你必须使用interval 而不是Observable.interval,see this doc for more info:

import { interval } from 'rxjs;
import { takeUntil } from 'rxjs/operators';

interval(600000).pipe(
    takeUntil(this.onDestroy$)
).subscribe(x => {
    // do something
});

【讨论】:

    【解决方案2】:

    现在是

    Observable.interval(600000).pipe(
       takeUntil(this.onDestroy$)
    ).subcribe(//...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 2018-10-25
      • 1970-01-01
      • 2014-04-23
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多