使用带有一个参数的 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