操作符

learn rxjs operators 已经很详细了,这里补充一些有意思的资料和总结。

  • scan: 顧名思義【掃描】就是將傳入 RxJS 運算子的事件資料,一筆一筆處理過一遍,每次處理的過程都會累加,並且處理一筆就 emit 一筆新的事件資料出來。
  • map: 顧名思義【對應】就是將一筆傳入的資料,對應到另一種格式的資料,通常用來轉換資料之用。 *concat: 顧名思義【串接】就是將一筆一筆的資料串接在一起,通常是把多個 Observable 物件串接成一個新的 Observable 物件。
  • switch: 顧名思義【交換】就是將一筆資料 "交換成" 另一種資料,當連續交換的事件發生時,還沒交換的資料就會被放棄。
  • merge: 顧名思義【合併】就是將多筆資料合併成一筆,通常是將多個 Observable 物件合併成一個 Observable 物件。
  • flat: 其用途跟 merge 完全一樣,在語意上,通常代表把多個 Observable 物件「壓平」成一個 Observable 物件。
  • exhaust: 顧名思義【耗盡】就是要把原本 Observable 物件送出的資料都跑完,才能繼續跑下一個。
  • zip: 這個單字有【拉鍊】的意思,你要發揮一點想像力,假設衣服的兩端,拉鍊拉起來之後,每一節都會平整的被湊在一起。
  • combine: 顧名思義【組合】就是將多筆資料組合在一起。
  • forkJoin: 這裡的 fork 是【走進岔路】的意思,Join 則是【從不同的岔路合併回來】。通常意思代表多個 Observable 物件同時執行,但全部執行完之後,才會 emit 所有資料,等大家從岔路走回來的感覺。

  • xxxAll: 顧名思義【全部】就是將所有傳入的 Observabe 物件,全部一起處理。
  • xxxLatest: 顧名思義【最新的】就是取得最新資料的意思。
  • xxxTo: 這裡的 To 有【表示結果】的意思,也就是直接把特定結果 emit 出去。
  • xxxMap: 這裡的 Map 有【對應】的意思,但是在 RxJS 的領域中,通常代表著在 Operator 中會對應到另一個不同的 Observable 物件。
  • xxxMapTo: 這裡就是 Map + To 的意思,但是在 RxJS 的領域中,通常代表著在 Operator 中會對應到另一個自行指定的 Observable 物件。
  • xxxScan: 顧名思義【掃描】就是將傳入 RxJS 運算子的事件資料,一筆一筆處理過一遍,每次處理的過程都會累加,並且處理一筆就 emit 一筆新的事件資料出來。

---- https://blog.miniasp.com/post/2018/09/06/Clarify-some-confused-RxJS-operators.aspx

results matching ""

    No results matching ""