RxJS學習筆記

本文爲原創,轉載請註明出處: cnzt       文章:cnzt-phtml

http://www.cnblogs.com/zt-blog/p/7809176.html react

 

RxJS在Angular中是一個很重要的東西,此篇爲RxJS的學習筆記。數組

  

RxJS(Reactive extension js)是一個庫,它用Observable序列來處理異步的、基於事件的程序。它提供了一個核心類型Observable(Observer, Schedulers, Subjects) 和一組數組操做符(map, filter, reduce, every, etc)oprators,來容許將異步的事件做爲集合處理。併發

 

解決異步的集合核心概念:異步

  Observable  Observer  Subscription  Oprators  Subject  Schedulers(控制併發)函數

 

(一)Observable, Observer , Subscription  學習

  下圖的create至關於Producer, subscribe至關於consumer。 多個subscribe時,每次subscribe至關於從新單獨call了一次function(observer){...},每次互不影響,由於function和Observable都是lazy computations的,不call/subscribe就不會執行的。spa

  

 

 

  Observable既能夠是同步的,也能夠是異步的。3d

  Observable能夠返回多個值:    observer.next(1); observer.next(2); ......     ***這點在function中是作不到的!***server

 

  Observable的四個方面:

  • Creating Observables
  • Subscribing to Observables
  • Executing the Observable
  • Disposing Observables

  subscribe調用時傳遞的參數就是Observer,Observer通常包含三個callback:next,error 和 complete。

 

  傳遞error給observer的方式:

  

 

  dispose:   Subscription

  

 

 (二)Subject

  Subject是一種特殊的Observable。區別在於:Observable是單播(每個被訂閱的Observer在其Observable有獨立的執行環境),Subject是多播(多個Observer共同分享一個execution)。

  ***每一個Subject都是一個Observable,每一個Subject也是一個Observer。

  最重要特性就是可多播

 

(三)Operator 

  Operator是一個純函數,生成一個新的Observable而不改變原有的Observable。 對新Observable的訂閱也會訂閱到原Observable上面(操做符訂閱鏈)。

 

  操做符分爲:實例操做符 和  靜態操做符。 實例操做符做用在Observable實例上,靜態操做符做用域Observable這個對象上。

 

  操做符全部類型列表:   http://reactivex.io/rxjs/manual/overview.html#categories-of-operators

相關文章
相關標籤/搜索