我回顾了以下SO问题: 什么是热和冷可观测量?
总结一下:
然而,我觉得热和冷仍然是混乱的根源.所以这是我的问题:
默认情况下所有rx可观察量是否都是冷的(主题除外)?
我经常读到事件是热观察的典型隐喻,但我也读到这Rx.fromEvent(input, 'click')是一个冷可观察的(?).
是否有什么/哪些Rx运算符将冷观测值转换为热观测值(除了publish和之外share)?
例如,它如何与Rx运算符一起使用withLatestFrom?让我们cold$成为一个冷酷的观察者.会sth$.withLatestFrom(cold$,...)是一个热门观察?
或者,如果我不sth1$.withLatestFrom(cold$,...), sth2$.withLatestFrom(cold$,...)和订阅sth1和sth2,将我总是看到两个相同的值sth?
我认为Rx.fromEvent会产生冷的可观测量,但事实并非如此,正如其中一个答案所述.但是,我仍然对此行为感到困惑:codepen.io/anon/pen/NqQMJR?editors=101.不同的订阅从同一个observable获得不同的值.click事件不是共享的吗?
在阅读了解释原因之后
Observable.Return(5)
.Repeat()
.Take(1)
Run Code Online (Sandbox Code Playgroud)
永远不会完成,但是
Observable.Return(5, Scheduler.CurrentThread)
.Repeat()
.Take(1)
Run Code Online (Sandbox Code Playgroud)
按预期工作.我仍然感到困惑,我不知道为什么currentThread实际上解决了这个问题.有人可以给出明确的解释吗?