使用只有一个参数的管道函数和根本不使用管道有什么区别吗?
我目前正在实施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(...发布于 2019-06-25 15:27:39
自从RxJS v6以来,takeUntil (和其他的)已经变成了管道操作符,而不是一个独立的函数。
在您共享的链接中,请查看imports部分,这意味着此示例使用的是以前版本的RxJS:
import 'rxjs/add/operator/takeUntil';在RxJS v6官方文档中,takeUntil的导入路径为:
import { takeUntil } from 'rxjs/operators';更多内容请阅读:https://rxjs-dev.firebaseapp.com/api/operators/takeUntil
发布于 2019-06-25 15:26:43
这是没有区别的。后者是在RxJS中使用运算符的旧方法。但是,据我所知,它已被弃用,您不应该使用它。
我们曾经使用静态导入将运算符原型化为Observable,如下所示
import 'rxjs/add/operator/takeUntil';
然而,这使得不可能对RxJS进行树抖动。因此,从RxJS v5.5开始,RxJS宣布了pipeable operators。始终在pipe中使用运算符
发布于 2019-06-28 10:24:31
重点是,旧方法将操作符添加到原型中,以便每个可观察的实例都可以使用它。这就是为什么它使运算符不可见树,并且不鼓励这样做。
https://stackoverflow.com/questions/56748777
复制相似问题