Norman's Note 諾曼筆記

Norman's Note 諾曼筆記

Rx.js

rxjs/operators

concatMap

第二個 request 的發送時間是接在第一個 request 之後的,我們可以確保每一個 request 會等前一個 request 完成才做處理
https://ithelp.ithome.com.tw/articles/10188387

switchMap

前面發送的 request 已經不會造成任何的 side-effect 了,這個很適合用在只看最後一次 request 的情境,比如說 自動完成(auto complete),我們只需要顯示使用者最後一次打在畫面上的文字來做建議選項。

  • request 還是會打出去(server 會收到),只是不在意前面的 response 了(只在意最後一個)

mergeMap / flatMap

bufferTime(2000)

整合 2 秒內的 actions,結合成 array 進到下個 operator

empty

Creates an Observable that emits no items to the Observer and immediately emits a complete notification.
https://rxjs-dev.firebaseapp.com/api/index/function/empty

RxJS Marbles

https://rxmarbles.com/

pipe()

.take(1) // 只取一次

filter(match fn), ofType(string)

match specific types in epics

tap(action => {})

Perform a side effect for every emission on the source Observable, but return an Observable that is identical to the source.
https://rxjs-dev.firebaseapp.com/api/operators/tap

Accessing the Store's State

https://redux-observable.js.org/docs/basics/Epics.html#accessing-the-stores-state