預設所有 Rx Observable 都是冷的嗎?
默認,除受試者外,所有 Rx 可觀察量都是冷的。這意味著它們只有在至少有一個觀察者訂閱時才會發出值。
Rx 運算子將冷Observables 轉換為Hot Observables
有兩個主要運算子可以將冷observable 轉換為熱observable:
withLatestFrom Operator 和 Cold Observables
withLatestFrom不會改變可觀察到的冷度或熱度。在你的例子中:
Rx.fromEvent 和Hot/Cold 行為
您在CodePen 範例是因為該事件僅在單擊元素時發出,而不是在訂閱Rx .fromEvent 可觀察物件時發出。因此,對可觀察量的每個訂閱都會收到不同的事件。
冷可觀察量的簡化流程圖
為了說明冷可觀察量的簡化資料流:
Source -> Observer1 -> Observer2
Hot Observables 的簡化流程圖
對於Hot Observables,流程為:
Source -> Subject -> Observer1 -> Observer2
主題充當中央集線器,將傳入資料多播到所有訂閱的觀察者。
多播運算子(發布/共享)
多播運算子在內部建立主題並傳回一個可連接的可觀察物件。當 observable 連線時,主體訂閱上游 observable 並向所有訂閱的觀察者多播資料。
使用運算子時考慮資料流
理解資料流經營者的行為至關重要。即使可觀察量是熱的,考慮後續運算子如何影響其熱或冷行為也很重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3