目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
1.背景介绍
RxJS 是使用 Observables 的响应式编程的库,它使编写异步或基于回调的代码更容易。
2.知识剖析
什么是RxJS,如何理解有什么作用?
Observable,Observer,Subscription,Operators ,subject,Schedulers是什么
可以把 RxJS 当做是用来处理事件的 Lodash
它将一切数据,包括HTTP请求,DOM事件或者普通数据等包装成流的形式,然后用强大丰富的操作符对流进行处理,使你能以同步编程的方式处理异步数据,并组合不同的操作符来轻松优雅的实现你所需要的功能
ReactiveX 结合了 观察者模式、迭代器模式 和 使用集合的函数式编程,以满足以一种理想方式来管理事件序列所需要的一切
3.常见问题
如何理解RXjs的流
4.解决方案
什么是流?这里我们不用专业术语来解释,用生活中大家熟悉的的例子来类比,比如“河流”。
有流向:
RxJS中数据的流向也是固定的,就是从发送者到订阅者。基本都如下面这种形式:
from(Promise.resolve(1)) // 流的源头
......
.subscribe(x => console.log(x)); // 流的终点</p>
有分支:
大的河流一般有干流和支流,大大小小的支流汇入干流。 RxJS中的数据则可以通过操作符将数据流进行聚合或拆分:
// 流的聚合 mergeMap(from(Promise.resolve(1)), from(Promise.resolve(2))) ...... .subscribe(x => console.log(x))
// 流的拆分
const obs$ = from(Promise.resolve(1)
obs$.subscribe(x => console.log(x))
obs$.subscribe(x => {
// do sth
})/
</code>
5.编码实战
6.扩展思考
什么是lodash
Lodash 是一个具有一致接口、模块化、高性能等特性的 JavaScript 工具库
7.参考文献
https://cn.rx.js.org/manual/overview.html#-
8 更多讨论
1.什么是Observer?答: Observer(观察者)是Observable(可观察对象)推送数据的消费者。在RxJS中,Observer是一个由回调函数组成的对象,键名分别为next、error 和 complete,以此接受Observable推送的不同类型的通知
2.什么是Subscription?
Subscription是一个代表可以终止资源的对象,表示一个Observable的执行过程。Subscription有一个重要的方法:unsubscribe。这个方法不需要传入参数,调用后便会终止相应的资源。在RxJS以前的版本中,
3.Subject?
Subject是一种能够发射数据给多个observer的Observable, 这让Subject看起来就好像是EventEmitter