RxJS - 概述
本章介绍有关 RxJS 的功能、优点和缺点的信息。在这里,我们还将学习何时使用 RxJS。
RxJS 的全称是 Reactive Extension for Javascript。它是一个使用可观察对象进行反应式编程的 JavaScript 库,用于处理异步数据调用、回调和基于事件的程序。RxJS 可以与其他 JavaScript 库和框架一起使用。它受 JavaScript 和 TypeScript 支持。
什么是 RxJS?
根据 RxJS 官方网站,它被定义为使用可观察序列编写异步和基于事件的程序的库。它提供了一种核心类型,即 Observable、附属类型(Observer、Schedulers、Subjects)和受 Array#extras 启发的运算符(map、filter、reduce、every 等),以允许将异步事件作为集合处理。
RxJS 的功能
在 RxJS 中,以下概念负责处理异步任务 −
Observable
Observable 是一个函数,它创建一个观察者并将其附加到需要值的源,例如,点击、来自 dom 元素的鼠标事件或 Http 请求等。
Observer
它是一个具有 next()、error() 和 complete() 方法的对象,当与可观察对象进行交互时,即源进行交互,例如按钮点击、Http 请求,等等。
订阅
当创建可观察对象时,要执行可观察对象,我们需要订阅它。它还可用于取消执行。
操作符
操作符是一个纯函数,它将可观察对象作为输入,输出也是一个可观察对象。
主题
主题是一个可以多播的可观察对象,即与许多观察者对话。考虑一个带有事件监听器的按钮,每次用户单击按钮时,都会调用使用 addlistener 附加到事件的函数,类似的功能也适用于主题。
调度程序
调度程序控制订阅何时启动和通知的执行。
何时使用 RxJS?
如果您的项目包含大量异步任务处理,那么 RxJS 是一个不错的选择。它默认随 Angular 项目一起加载。
使用 RxJS 的优势
以下是使用 RxJS 的优势 −
RxJS 可以与其他 Javascript 库和框架一起使用。它受 javascript 和 typescript 支持。一些例子是 Angular、ReactJS、Vuejs、nodejs 等。
在处理异步任务方面,RxJS 是一个很棒的库。RxJS 使用可观察对象来处理处理异步数据调用、回调和基于事件的程序的反应式编程。
RxJS 提供了大量的数学、转换、过滤、实用程序、条件、错误处理、连接类别的运算符集合,使与反应式编程一起使用时变得轻松。
使用 RxJS 的缺点
以下是使用 RxJS 的缺点 −
使用可观察对象调试代码有点困难。
当您开始使用可观察对象时,您最终可以将整个代码包装在可观察对象下。