天天看點

rxjs switchMap的實作原理

switchMap相關文章

rxjs裡switchMap operators的用法

通過rxjs的一個例子, 來學習SwitchMap的使用方法

rxjs switchMap的實作原理

rxjs的map和switchMap在SAP Spartacus中的應用 -将高階Observable進行flatten操作

SwitchMap can cancel in-flight network requests.

先引用rxjs官網對SwitchMap的介紹:

rxjs switchMap的實作原理

每次emission,之前的inner Observable會被cancel,新的Observable會被subscribe.

可以使用"switch to a new Observable"的方法來幫助記憶switchMap的這一特性。

Typeheads

This works perfectly for scenarios like typeaheads where you are no longer concerned with the response of the previous request when a new input arrives.

This also is a safe option in situations where a long lived inner observable could cause memory leaks, for instance if you used mergeMap with an interval and forgot to properly dispose of inner subscriptions. -

Remember, switchMap maintains only one inner subscription at a time, this can be seen clearly in the first example.

Be careful though, you probably want to avoid switchMap in scenarios where every request needs to complete, think writes to a database. switchMap could cancel a request if the source emits quickly enough. In these scenarios mergeMap is the correct option.

看個例子:

源代碼:

rxjs switchMap的實作原理

輸出:

rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理
rxjs switchMap的實作原理

繼續閱讀