RxJS 操作符概览(RxJS Operators Overview)
作者: billowstao
版权: 知识共享署名 4.0 国际许可协议
RxJS 的操作符太丰富了,总结这一篇 RxJS 的操作符便于快速查询。🤠
- RxJS 操作符概览(RxJS Operators Overview)
- 弹珠图(Marble Diagrams)
- 操作符分类(Category Of Operators)
- 创建操作符(Creation Operators)
- 连接创建操作符(Join Creation Operators)
- 转换操作符(Transformation Operators)
- 过滤操作符(Filtering Operators)
- 连接操作符(Join Operators, 高阶 Observable 操作符)
- 多播操作符(Multicasting Operators)
- 错误处理操作符(Error Handing Operators)
- 工具操作符(Utility Operators)
- 条件和布尔操作符(Conditional And Boolean Operators)
- 数学和集合运算符(Mathematical and Aggregate Operators)
- 参考(Reference)
弹珠图(Marble Diagrams)
要解释操作符是如何工作的,文字描述通常是不足以描述清楚的。许多操作符都是跟时间相关的,它们可能会以不同的方式延迟(delay)、取样(sample)、节流(throttle)或去抖动(debounce)。图表通常是更适合的工具。弹珠图是操作符运行方式的视觉表示,其中包含输入 Observable(s) (输入可能是多个 Observable)、操作符及其参数和输出 Observable 。
在弹珠图中,时间流向右边,图描述了在 Observable 执行中值(“弹珠”)是如何发出的。
在下图中可以看到解剖过的弹珠图。
在整个文档站中,我们广泛地使用弹珠图来解释操作符的工作方式。它们在其他环境中也可能非常有用,例如在白板上,甚至在我们的单元测试中(如 ASCII 图)。
操作符分类(Category Of Operators)
操作符有着不同的用途,它们可作如下分类:创建、转换、过滤、连接、多播、错误处理、工具,等等。在下面的列表中,你可以按分类组织好的所有操作符。
创建操作符(Creation Operators)
- ajax: 创建 ajax 的 Observable。
- bindCallback: 将回调函数转换为 Observable。
- bindNodeCallback: 将 Node.js 回调函数转换为 Observable(Node.js 的回调函数为
callback(error, result)
) - defer: Observable 工厂函数(factory)
- ~~empty: RxJS v8 将要移除。~~使用
EMPTY
或者scheduled
(例如schedule([], scheduler)
) 替换 - from: 从 Array, 类数组对象, Promise, 字面量对象, 类 Observable 对象创建 Observable
- fromEvent: 事件绑定