0.1 核心
- Observable: 可观察物件,代表着未来即将产生的事件资料,相当于流的起点 (物件)
- Observer: 观察者,用来接收观察结果的物件,在观察这个东西的执行行为 (人)
- Subscription: 订阅事件资料的行为,代表在监听observable,可以取消observer的监听,这样observer就不会去监听observable了 (行为)
- Operators: 在observer监听时对事件资料进行相关操作的操作符 (加料)
- Subject: 主体物件,其实就是相当于一个喇叭,将一个observable发送给多个observer,它自己既是observable又是observer (观察在告诉别人) ```typescript //建立主体物件 var subject = new rxjs.Subject(); //建立可观察observable var click$ = rxjs.fromEvent(document,’click’); //设定最多取得两个事件资料就将observable设为完成 click$ = click.pipe(take(2)); //设定将click$全部交由subject进行广播 click$.subscribe(subject); //最后再由subject去建立observable物件 var subs1$ = subject.subscribe((x) => console.log(x.client)); var subs2$ = subject.subscribe((x) => console.log(x.client)); //取消订阅subscription物件 subs1$.unsubscribe(); subs2$.unsubscribe();
0.2 做了什么
- RxJS 把所有的异步事件都封装成 Observable。
- 因为所有的异步事件都被封装成了 Observable,所以所有的异步事件都可以用同样的 api 来订阅。
- RxJS 的 Operator 可以非常轻易地实现非常复杂的异步操作。
- 降低并发问题的复杂性