我正在阅读angular的文档及其对RxJS库的使用。我找到了这个信息
您可以使用管道将运算符链接在一起。管道让您结合多个功能合并为一个功能。 pipe()函数需要要合并的函数作为其参数,并返回一个新的函数,该函数在执行时将依次运行组成的函数。
所以管道的目的是链接多个功能,但令我感到奇怪的是,我已经看到很多次只使用一个功能的pipe
了,例如:
this.itemSubscription = this.store
.pipe(select(state => state.items.root))
.subscribe(state => {
this.items = state.items;
});
[当我尝试不使用select
的情况下使用pipe
时,我的tslint说:
不推荐使用:从6.1.0开始。使用管道选择操作符代替。 (不推荐使用)tslint(1)
为什么会这样?我想念什么吗?在互联网上找不到任何相关说明。
使用可操作的运算符被认为是最佳实践。因为您只能将所需的特定运算符导入项目。其余的可以通过摇晃树来除去,因此捆束的尺寸正在减小。
开始时只使用一个操作符似乎有点怪异,但是您会习惯的。
Pipe
与作为运算符的map不同,pipe是Observable上用于构成运算符的方法。
pipe在v5.5中引入RxJS采取看起来像这样的代码:
of(1,2,3).map(x => x + 1).filter(x => x > 2);
并将它变成这个
of(1,2,3).pipe(
map(x => x + 1),
filter(x => x > 2)
);
相同的输出,相同的概念,但语法不同。