Last updated on Jun 20, 2020

官方:RxJS 是 Reactive Extensions for JavaScript 的缩写,起源于 Reactive Extensions,是一个基于可观测数据流组成异步和基于事件的库。
RxJS 是 Reactive Extensions 在 JavaScript 上的实现。
所谓编程范式就是编写程序的方法论。了解 RxJS 所使用的编程范式有助于我们更好的理解它。
响应式编程是一种面向数据流和变化传播的编程范式。在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。—— wikipedia
响应式编程是使用异步数据流进行编程。
好处很明显,只关注业务逻辑互相依赖的事件而不是实现细节,适用于大量和数据有关的事件交互,特别是高实时性要求。
事件机制,在前端有很多的应用。
Node.js 特点:异步事件驱动,这是因为 Node.js 本身利用 JavaScript 的语言特点实现了自定义的事件回调。Node.js 内部一个事件发布订阅器 EventEmitter,通过这个类,可以进行事件监听与发射。这个也是 Node.js 的核心模块,很多 Node.js 内部模块都是继承自它,或者引用了它。
Webpack 的本质:一种基于事件机制的编程范例,通过事件将一系列的的插件串联运行,最终完成 Webpack 的全流程。实现事件机制的核心是 Tapable 模块。Webpack 负责编译的 Compiler 和创建 Bundle 的 Compilation 都是继承自 Tapable。