如何優雅的取消訂閱 rxjs

2021-09-11 17:12:14 字數 1073 閱讀 3969

rxjs中最頭疼的莫非取消訂閱的問題,其頭疼程度不下於removeeventlistener。本文試圖**分析rxjs中取消訂閱的幾種方式,並做對比優劣分析及應用場景。

邏輯簡單,需要額外引入變數儲存,**量大和維護難!

let sub = this.props$.subscribe();

// 當登出時取消訂閱

sub.unsubscribe();

複製**

takeuntil 訂閱並開始映象源 observable 。它還監視另外乙個 observable,即你 提供的 notifier 。如果 notifier 發出值或 complete 通知,那麼輸出 observable 停止映象源 observable ,然後完成。

takewhile 發出在源 observable 中滿足 predicate 函式的每個值,並且一旦出現不滿足 predicate 的值就立即完成。

props$.pipe(

takeuntil(res=>end$)

).subscribe()

//當登出事end$發射事件

end$.next().

複製**

簡單容易維護,不適合複雜場景

let sub = observable.create((subscriber)=>);

// 登出時

this.subscriber.complete();

複製**

complete 和 error 觸發後,unsubscribe 也會自動呼叫

當 next、complete和error 出現異常時,unsubscribe 也會自動呼叫以保證資源不會浪費

next、complete和error是可選的。按需處理即可,不必全部處理

我也是剛開始學習研究這塊,有在研究的可以討論一下!

如何優雅的送禮?

送禮的尺度要以法律規定和公司制度為紅線,在職場上,肯定不能送重禮,否則可能成為商業賄賂。很多國際化的公司都有明確的送禮和收禮規定,不能超過幾百元。牢記這一條,你就會發現有創意是多麼的重要,因為你的預算空間實在很小。送禮這件事,從策劃選禮物到對方接收到禮物是乙個操作過程,最重要的是送禮時刻。其實對於有...

如何優雅的使用「看板」?

你需要通過看板達到什麼目的 看板三原則 1.使工作視覺化,給每人乙個專案目前的big picture。2.減少並行工作。乙個user story的生命週期被切分成較小的塊,每個人應該keep在其中一塊。3.優化工作流程。在實踐中不斷迭代看板的流程,增減某些階段,或調整從乙個階段跳轉到下乙個階段的邊界...

如何優雅的使用rem

移動端css做布局的時候,如何選擇px em rem這幾個單位呢?很多初做移動端的童鞋們,不知道如何用px em 還是用rem做移動端的布局,那就舉例說一下 如果使用 作為單位的話,在iphone4上多少會有些布局錯位,那用rem就解決了這個難題。document.documentelement.s...