为什么要在Angular订阅中对管道使用select?

问题描述 投票:0回答:2

我正在阅读angular的文档及其对RxJS库的使用。我找到了这个信息

Pipes

您可以使用管道将运算符链接在一起。管道让您结合多个功能合并为一个功能。 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)

为什么会这样?我想念什么吗?在互联网上找不到任何相关说明。

angular select rxjs pipe store
2个回答
1
投票

使用可操作的运算符被认为是最佳实践。因为您只能将所需的特定运算符导入项目。其余的可以通过摇晃树来除去,因此捆束的尺寸正在减小。

开始时只使用一个操作符似乎有点怪异,但是您会习惯的。


0
投票

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)
);

相同的输出,相同的概念,但语法不同。

© www.soinside.com 2019 - 2024. All rights reserved.