什么是 Observable?
Observable 是 RxJS 中的一个基础概念,表示一个可以“被观察”的对象,可以被一些“观察者”订阅并收到它在未来发生的事件。
这些事件可以是任何类型的数据,甚至是错误或者完成信号。Observable 对象可以作为被观察者,用来代表诸如 Ajax 请求或 WebSockets 数据流等异步数据源。
如何创建 Observable 对象?
Observable 对象可以通过 RxJS 提供的构造函数、静态工厂方法或者创建操作符等方式进行创建。
以下是使用 Observable 构造函数和静态方法创建 Observable 对象的示例代码:
------ - ---------- - ---- ------- ----- ----------- - --- ------------------- -- - ----------------------- ------------------------ -------------------- --- ----- ----------- - ---------------- -- -- -- --- --------------------------- -- -------------------- --------------------------- -- --------------------
代码中,我们分别使用了 Observable 构造函数和静态方法 of() 创建了两个 Observable 对象,分别发送了不同的事件流。
Observable 的三个重要状态
在 Observable 内部,有三种重要的状态:等待状态、激活状态和已完成状态。
- 等待状态:当 Observer 订阅 Observable 的时候,Observable 进入等待状态,等待 Observer 发出指令来开始执行并发送数据流。
- 激活状态:当 Observer 通过订阅 Observable 并调用其 next() 方法后,Observable 开始向 Observer 发出数据流。这时,Observable 进入激活状态。
- 已完成状态:当 Observable 发送完所有的数据流并调用了 complete() 方法后,Observable 进入已完成状态。
在等待状态和已完成状态之间,Observable 可以无限的在激活状态和等待状态之间切换。
Observable 的生命周期
Observable 具有生命周期,以下是 Observable 的完整生命周期:
- 创建 Observable 对象并定义它所发送的事件流。
- 让 Observer 订阅 Observable,并等待 Observer 发出指令开始执行。
- 开始向 Observer 发送数据流。
- 当 Observable 发送数据流完毕后(或当遇到错误时),调用 complete() 或 error() 方法来终止 Observable,Observable 进入已完成状态或者错误状态。
- 调用 complete() 或 error() 方法后,Observable 完全终止,Observer 不再接收其发出的任何事件。
总结
在 RxJS 中,Observable 是一个非常重要的概念,代表了异步数据源的事件流,可以通过不同的方式来创建和处理。理解 Observable 的内部状态和生命周期,能够帮助开发者更好的利用 RxJS 来开发高效的前端应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66448708d3423812e426f715