官網(wǎng):https://rxjs.dev/api
關(guān)于subscription
https://blog.csdn.net/weixin_26643379/article/details/108892234
參考鏈接:
https://reactive.how/ 可視化對比視頻動畫
https://segmentfault.com/a/1190000013186747
rxjs: 一組用來處理異步或事件的 js 函式庫
核心概念:
rxjs是一個使用觀察者模式來整合異步操作和事件系統(tǒng)的js庫迷守,通過一系列可觀測的流(observable)將它們串聯(lián)起來更哄。
Observable是這個庫的核心類型析藕,此外還包括諸如Observer颊亮,Schedulers强胰,Subjects等類型桥嗤。
還包括一些和數(shù)組方法類似或經(jīng)過演化的操作符监右,用來協(xié)助處理數(shù)據(jù)督怜。
在rxjs中用來處理異步事件的核心概念包括:
- observable: 代表了未來可能會產(chǎn)生的一系列的值或事件的集合;
- observer: 回調(diào)函數(shù)的集合袭景,它知道如何去處理observable上產(chǎn)生的值或者事件唁桩,當然也包括異常。
- subscription: 代表當前正在訂閱的observable耸棒,主要作用是用來取消訂閱行為荒澡。
- operators: 純函數(shù),以函數(shù)式的風格通過各種各樣的操作符相互配合對observable上產(chǎn)生的數(shù)據(jù)集合進處理与殃。
- subject: 相當于一個事件發(fā)射器单山,允許將相同的值傳遞給多個訂閱者。
- schedulers: 協(xié)調(diào)observable上數(shù)據(jù)的發(fā)射方式幅疼。
示例:
在javascript中通常使用以下方式來注冊事件:
var button = document.querySelector('button');
button.addEventListener('click', () => console.log('Clicked'));
使用rxjs的方式實現(xiàn)如下:
var button = document.querySelector('button');
Rx.Observable.fromEvent(button, 'click')
.subscribe(() => console.log('Clicked'));
subscribe return 的回調(diào)值就是subscriotion
觀察者一般是個函數(shù)
有人訂閱米奸,觀察行為才會啟動
并不是有觀察者就行,必須要有subscribe去訂閱K瘛c参!逐工!
unsubscribe 取消訂閱后膨疏,不會再觸發(fā)訂閱