angular - Object(...)(...).takeUntil 不是函数

标签 angular rxjs angular6 rxjs6

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

import { Observable, Subject } from "rxjs";

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

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

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

最佳答案

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

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

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

关于angular - Object(...)(...).takeUntil 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503823/

相关文章:

javascript - 创建行为类似于 CombineLatest 但仅发出刚刚触发的源的值的 Observable

angular - 如何停止 rxjs 间隔/计时器

Angular 6 + Popper.js(没有 jQuery)

javascript - 在 Angular 6 应用程序中,除了本地存储之外,在哪里存储用户信息并在重新加载时保留相同的信息?

javascript - 在新选项卡 Angular 2 中打开本地 PDF

angular - 如何将 EventEmitter 输出附加到路由下的组件?

typescript - Observable 在 Angular 2 Beta 3 中被破坏了吗?

node.js - Azure 中的 Angular 工件包含约 43k 个文件

angular - Safari、Iphone 上的 Firebase 电话身份验证问题

angular - 将 Angular 应用程序从版本 4.x.x 更新到 6.0