RXJS 里面有哪几个核心的概念
RxJS 是一个流式编程库,它基于观察者模式(Observer pattern)和可观察对象(Observable)来处理异步事件和数据流。RxJS 中有几个核心概念,这些概念构成了 RxJS 的基础:
-
Observable(可观察对象):
- Observable 表示一个数据流,它可以发出多个值(包括基本类型、对象、数组等)在一段时间内。这些值可以是同步的也可以是异步的,Observable 可以被订阅以执行并接收这些值。它可以被观察到,并且可以被观察者(Observer)订阅以监听它的事件。
-
Observer(观察者):
- 观察者用来监听 Observable 发出的值。它包括三个方法:
next()用来处理正常的值,error()用来处理错误,complete()用来处理 Observable 的完成。
- 观察者用来监听 Observable 发出的值。它包括三个方法:
-
Operators(操作符):
- 操作符是用来处理、转换、过滤、组合 Observable 数据流的函数。它们允许对 Observable 发出的数据流进行各种操作,比如
map、filter、mergeMap、switchMap等等。这些操作符可以链式调用,允许构建复杂的数据处理流程。
- 操作符是用来处理、转换、过滤、组合 Observable 数据流的函数。它们允许对 Observable 发出的数据流进行各种操作,比如
-
Subscription(订阅):
- 订阅是 Observable 执行的关键部分。当调用 Observable 的
subscribe()方法时,会返回一个 Subscription 对象,它代表着对 Observable 的订阅。它可以用来取消订阅,防止内存泄漏或不必要的资源消耗。
- 订阅是 Observable 执行的关键部分。当调用 Observable 的
-
Subject(主题):
- Subject 是 Observable 和 Observer 的混合体。它既是一个可观察对象,也是一个观察者。它可以多播数据给多个观察者,允许在数据流中共享相同的值。
-
Schedulers(调度器):
- 调度器控制着 Observable 的执行时机和顺序。它可以用来指定 Observable 在何时以何种方式发出数据,比如
asyncScheduler可以将任务推迟到下一个事件循环中执行。
- 调度器控制着 Observable 的执行时机和顺序。它可以用来指定 Observable 在何时以何种方式发出数据,比如

浙公网安备 33010602011771号