概念
Rx 是一個用來處理非同步事件導向的工具,主要是通過觀察序列的變化來操作
RxJS 是 Rx 的 JavaScript 實作版本
核心概念
Observable
- 可觀察的物件 ⇒ 用來表示一個 可被監聽的資料流- 註冊網頁的點擊事件,觀察網頁是否被點擊
Observer
- 觀察者物件 ⇒ 用來表示 Observable 物件監聽結果處理的物件- 如果網頁被點擊,要回應 true,如果點擊發生錯誤,要回應 error
Subscription
- 訂閱物件 ⇒ 用來管理訂閱 Observable 的行為,主要是 Observer 監聽 Observable 後會返回的物件,用來處理 “觀察” 這件事情的後續行為- 如果使用者不想觀察點擊事件,可以取消訂閱來不觀察事件
Operators
- 運算子 ⇒ 在 Observable 監聽結果在抵達到 Observer 時,可以先藉由 Operators 來預先處理資料- 如果網頁被連續點擊,就返回第一個觀察結果給 Observer 處理
Subject
- 主體物件 ⇒ 把 Observable 監測傳遞到 Observer 這一整件事變成一個 Observable,來讓後續可以有多位 Observer 訂閱- 如果 A 元件跟 B 元件同時仰賴一個按鈕監聽,則將按鈕監聽到處理包裝成 Subject 來供 A, B 訂閱
Schedulers
- 排成控制器 ⇒ 用來管理跟調度多個事件資料,控制 Observable 何時傳遞資料- 使用
asyncScheduler
來每三秒讓 Observable 發送資料一次