Rxjs,带有一个参数的管道

And*_*ers 6 rxjs angular rxjs-pipeable-operators

使用带有一个参数的 Pipe 函数与根本不使用 Pipe 相比,有什么区别吗?

我目前正在实施本文中的 takeUntil 取消订阅策略。在这个SO问题的“官方解决方案”中,takeUntil运算符是通过管道发送的。但是,在此页面上使用 takeUntil 时没有使用管道。

因此,我想知道使用带有单个 Rx 运算符的 Pipe 与根本不使用 Pipe 是否有任何区别(内存泄漏/性能等)。

private destroy$ = new Subject();
...
this.potatoService.getPotato()
   .pipe(
    takeUntil(this.destroy$)
   ).subscribe(...
Run Code Online (Sandbox Code Playgroud)

相对于

this.potatoService.getPotato()
    .takeUntil(this.destroy$)
    .subscribe(...
Run Code Online (Sandbox Code Playgroud)

Har*_*maz 1

从 RxJS v6 开始,takeUntil(和其他)已经成为可管道操作符而不是独立的函数。

在您共享的链接中,请查看导入部分,这意味着此示例使用以前版本的 RxJS:

import 'rxjs/add/operator/takeUntil';
Run Code Online (Sandbox Code Playgroud)

从RxJS v6的官方文档来看,导入路径变为takeUntil

import { takeUntil } from 'rxjs/operators';
Run Code Online (Sandbox Code Playgroud)

进一步阅读: https: //rxjs-dev.firebaseapp.com/api/operators/takeUntil