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 的缺点 −

  • 使用可观察对象调试代码有点困难。

  • 当您开始使用可观察对象时,您最终可以将整个代码包装在可观察对象下。