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

我目前正在从 this article 实现 takeUntil 取消订阅策略。在 this SO question 的“官方解决方案”中, takeUntil 操作符是通过管道发送的。但是,在 this page 上使用 takeUntil 没有管道。

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

private destroy$ = new Subject();
...
this.potatoService.getPotato()
   .pipe(
    takeUntil(this.destroy$)
   ).subscribe(...



this.potatoService.getPotato()
    .takeUntil(this.destroy$)
    .subscribe(...

最佳答案

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

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

import 'rxjs/add/operator/takeUntil';

从RxJS v6的官方文档来看,takeUntil的导入路径变为:
import { takeUntil } from 'rxjs/operators';

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

10-06 02:52