4.Rxjs介紹及注意事項
先梳理一些概念:
Rx:ReactiveX是Reactive Extensions的縮寫,一般簡寫為Rx,最初是LINQ的一個擴充套件,由微軟的架構師Erik Meijer領導的團隊開發,在2012年11月開源,Rx是一個程式設計模型,目標是提供一致的程式設計介面,幫助開發者更方便的處理非同步資料流,Rx庫支援.NET、JavaScript和C++,Rx近幾年越來越流行了,現在已經支援幾乎全部的流行程式語言了,Rx的大部分語言庫由ReactiveX這個組織負責維護,比較流行的有RxJava/RxJS/Rx.NET,社群網站是 reactivex.io。
Observer 和 Observable: 在ReactiveX中,一個觀察者(Observer)訂閱一個可觀察物件(Observable)。觀察者對Observable發射的資料或資料序列作出響應。這種模式可以極大地簡化併發操作,因為它建立了一個處於待命狀態的觀察者哨兵,在未來某個時刻響應Observable的通知,不需要阻塞等待Observable發射資料。
Rxjs: 剛才說了Rx是抽象的東西,rxjs就是使用JavaScript語言實現rx介面的類庫。
它通過使用 observable 序列來編寫非同步和基於事件的程式。它提供了一個核心型別 Observable,附屬型別 (Observer、 Schedulers、 Subjects) 和受 [Array#extras] 啟發的操作符 (map、filter、reduce、every, 等等),這些陣列操作符可以把非同步事件作為集合來處理。
ReactiveX 結合了 觀察者模式、迭代器模式 和 使用集合的函數語言程式設計,以滿足以一種理想方式來管理事件序列所需要的一切。
在 RxJS 中用來解決非同步事件管理的的基本概念是:
- Observable (可觀察物件): 表示一個概念,這個概念是一個可呼叫的未來值或事件的集合。
- Observer (觀察者): 一個回撥函式的集合,它知道如何去監聽由 Observable 提供的值。
- Subscription (訂閱): 表示 Observable 的執行,主要用於取消 Observable 的執行。
-
Operators (操作符): 採用函數語言程式設計風格的純函式 (pure function),使用像
map
、filter
、concat
、flatMap
等這樣的操作符來處理集合。 - Subject (主體): 相當於 EventEmitter,並且是將值或事件多路推送給多個 Observer 的唯一方式。
-
Schedulers (排程器): 用來控制併發並且是中央集權的排程員,允許我們在發生計算時進行協調,例如
setTimeout
或requestAnimationFrame
或其他。
建議直接看官方文件,畢竟是最新的。
- http://reactivex.io/documentation
-
https://rxjs-dev.firebaseapp.com/guide/overview
可結合中文文件 (注意是rxjs5)
https://mcxiaoke.gitbooks.io/rxdocs/content/
學好rxjs的關鍵是對Operators (操作符)的靈活使用,操作符就是純函式,我們使用操作符建立,轉換,過濾,組合,錯誤處理,輔助操作Observables。具體參見
下節介紹如何建立 Observables
相關文章
- TransactionScope事務處理方法介紹及.NETCore中的注意事項NetCore
- 選擇代理ip注意事項介紹
- Storm介紹&實際開發注意事項ORM
- 【DATAGUARD】Oracle21c Dataguard建立注意事項及主要引數介紹Oracle
- react-webcomponentify元件介紹、原碼分析、注意事項ReactWeb元件
- Web前端面試自我介紹對話技巧注意事項Web前端面試
- 搭建 nuget 私服及注意事項
- Guava HashMultimap使用及注意事項Guava
- Python eval的用法及注意事項Python
- 介面開發文件及注意事項
- 段合併優化及注意事項優化
- SVN安裝配置及安全注意事項
- 如何搭建伺服器及注意事項伺服器
- RandomAccessFile注意事項randomMac
- @Lombok注意事項Lombok
- 斯里蘭卡旅行須知-景點介紹-注意事項-攜帶東西
- QQ登出功能上線 新版QQ帳號登出流程和注意事項介紹
- 開發及上線中的注意事項
- 整合環信IM SDK及使用注意事項
- ERP選型準備、方法及注意事項
- 阿里雲初次備案全流程及注意事項阿里
- 教程:MySQL 8安裝與配置及注意事項MySql
- 新手使用ABP框架及注意事項--純後端框架後端
- 解壓縮版mysql安裝及注意事項MySql
- Python命令列引數定義及注意事項Python命令列
- 函式注意事項函式
- 生產注意事項
- 電量注意事項
- CSP 考前注意事項
- 快取注意事項快取
- MySQL介紹及安裝與多例項MySql
- 正交多項式介紹及應用
- 微服務熔斷隔離機制及注意事項微服務
- vue元件通訊--注意事項及經驗總結Vue元件
- 詳解Linux(Centos)之安裝Nginx及注意事項LinuxCentOSNginx
- vue元件通訊–注意事項及經驗總結Vue元件
- Taro原理分析、遷移指南及開發注意事項
- Linux原始碼包安裝過程及注意事項Linux原始碼