目錄
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