預設所有 Rx Observable 都是冷的嗎?
默認,除受試者外,所有 Rx 可觀察量都是冷的。這意味著它們只有在至少有一個觀察者訂閱時才會發出值。
Rx 運算子將冷Observables 變成熱Observables
有兩個主要運算子可以將冷observable 轉換為熱observable:
有兩個主要運算子可以將冷observable 轉換為熱observable:withLatestFrom 運算子和 Cold Observables
withLatestFrom不會改變可觀察到的冷度或熱度。在您的範例中:
Rx.fromEvent 和熱/冷行為
您在CodePen 範例是因為該事件僅在按一下元素時發出,而不是在訂閱Rx .fromEvent 可觀察物件時發出。因此,對 observable 的每個訂閱都會收到不同的事件。
冷Observable 的簡化流程圖
為了說明冷observable 的簡化資料流:
Source -> Observer1 -> Observer2
Source -> Subject -> Observer1 -> Observer2主體充當中心樞紐,將傳入資料多播給所有訂閱的觀察者。
多播運算子(發佈/分享)
多播運算子在內部建立主題並傳回一個可連接的可觀察物件。當 observable 連線時,主體訂閱上游 observable 並向所有訂閱的觀察者組播資料。使用運算符時考慮資料流
理解資料流經營者的行為至關重要。即使可觀察量是熱的,考慮後續運算子如何影響其熱或冷行為也很重要。以上是Rx Observables 預設是冷的嗎? 了解「發布」和「共享」的資料流的詳細內容。更多資訊請關注PHP中文網其他相關文章!