RxJS 是一个使用可观察序列编写异步和基于事件的程序的库。
一、解决异步事件的概念:
- Observable(可观察者):表示未来(future)值或事件的可调用集合的概念。
- Observer(观察者):是一个回调集合,它知道如何监听 Observable 传来的值。
- Subscription(订阅):表示 Observable 的一次执行,主要用于取消执行。
- Operator(操作符):是纯函数,可以使用 map、filter、concat、reduce 等操作来以函数式编程风格处理集合。
- Subject(主体):相当于一个 EventEmitter,也是将一个值或事件多播到多个 Observers 的唯一方式。
- Scheduler(调度器):是控制并发的集中化调度器,允许我们在计算发生时进行协调,例如 setTimeout 或 requestAnimationFrame 或其它。
二、diff
原生js注册事件监听器:
document.addEventListener('click', () => console.log('Clicked!'));
RxJS版:创建observable
import {
fromEvent } from 'rxjs';
fromEvent(document