gpt4 book ai didi

angular - RxJS 中的管道有什么用?

转载 作者:太空狗 更新时间:2023-10-29 16:46:05 25 4
gpt4 key购买 nike

我想我已经有了基本的概念,但还有一些晦涩难懂的地方

所以通常这就是我使用 Observable 的方式:

observable.subscribe(x => {

})

如果我想过滤数据,我可以使用这个:

import { first, last, map, reduce, find, skipWhile } from 'rxjs/operators';
observable.pipe(
map(x => {return x}),
first()
).subscribe(x => {

})

我也可以这样做:

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/first';

observable.map(x => {return x}).first().subscribe(x => {

})

所以我的问题是:

  1. 有什么区别?
  2. 如果没有区别,为什么函数pipe存在?
  3. 为什么这些函数需要不同的导入?

最佳答案

自 RxJS 5.5 以来,“pipeable”(以前的“lettable”)运算符是当前和推荐的使用运算符的方式

我强烈建议您阅读 official documentation on pipeable operators

主要区别在于,它更容易制作自定义运算符,并且在不改变某些全局 Observable 对象的情况下更好地进行 treeshaking,如果两个不同的方想要创建相同的运算符,则可能会发生冲突姓名。

为每个运算符使用单独的 import 语句 'rxjs/add/operator/first' 是制作更小的应用程序包的一种方法。通过仅导入您需要的运算符而不是整个 RxJS 库,您可以显着减少总包大小。但是,编译器无法知道您是否导入了 'rxjs/add/operator/first',因为您在代码中确实需要它,或者您只是在重构代码时忘记删除它。这是使用管道运算符的优势之一,其中未使用的导入会自动被忽略。

关于angular - RxJS 中的管道有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com