源自觀察者-發佈者設計模式:
觀察者註冊於 Subject 上,每當 subject 狀態發生變化時,通知觀察者。
RxJs 裏的 Observable 就是 Subject:
管道:連接 Observable 的同時,增添額外的邏輯:
冷熱 Observable 的區別:
Cold Observable,僅當被訂閱時,才通過內部生產者生產數據
Hot Observable,具有外部生產者,不管被訂閱與否,都能夠自主生產數據,比如基於 HTML Event listener 的 Observable,基於 HTTP GET 的 Observable 等等。
subscription
Observable 內部維護了一個指針,指向 subscriber,用於在需要的時候,unsubscribe Observers.
RxJs 裏的 Observable 是單播,而 Subject 是多播。
更多Jerry的原創文章,盡在:"汪子熙":