研究背景
最近使用的前端框架 Angular 2 将 RxJS 作为很重要的依赖。要掌握 Angular 2 看来务必需要了解 RxJS。
RxJS 的背景
Reactive Programming
Wiki 的定义:
在计算机中,响应式编程是一种面相数据流和变化传播的编程范式。这意味着可以在编程语言中很方便的表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。响应式编程最初是为了简化交互式用户界面的创建和实时系统动画的绘制而提出来的一种方法,但它本质上是一种通用的编程范式。例如在 MVC 架构中,响应式编程允许将相关模型的变化自动反应到视图上,反之亦然。
很方便粗略的区分三种计算机编程方式。转换程序从一组给定的输入计算出结果。典型的例子是编译器或者计算器;交互式程序以他们自己的速度和用户或者其他程序交互。从一个用户的视角看,分时操作系统就是交互的;响应式编程维持了一个和他们的环境持续的交互,但是以一个由环境决定的速度,而不是程序本身。交互式程序工作以他们自己的节奏工作并通常处理通信,而响应式编程仅作为响应外部的需求工作并通常以精确的中断处理应对。实时程序通常是响应式的。然而有些通常不被认为是实时的,例如协议、系统驱动、或者或者人机接口处理器也是响应式程序。
ReactiveX
ReactiveX 是一个对于使用可观察流的异步编程的 API。Reactive 是一个源自于观察者模式、迭代器模式和函数式编程的最佳思维的结合。
RxJS
RxJS 是 ReactiveX 的 JavaScript 实现。RxJS 将异步数据抽象为数据流,并提供对数据流进行各种转换操作的 JavaScript 接口。
比较详细的说明可以参见此文章