相关疑难解决方法(0)

冷热观察:有"热"和"冷"运营商吗?

我回顾了以下SO问题: 什么是热和冷可观测量?

总结一下:

  • 当一个cold observable有一个观察者使用它时,它会发出它的值,即观察者接收的值序列与订阅时间无关.所有观察者都将使用相同的值序列.
  • 热的observable独立于其订阅发出值,即观察者接收的值是订阅时间的函数.

然而,我觉得热和冷仍然是混乱的根源.所以这是我的问题:

  • 默认情况下所有rx可观察量是否都是冷的(主题除外)?

    我经常读到事件是热观察的典型隐喻,但我也读到这Rx.fromEvent(input, 'click')是一个冷可观察的(?).

  • 是否有什么/哪些Rx运算符将冷观测值转换为热观测值(除了publish和之外share)?

    例如,它如何与Rx运算符一起使用withLatestFrom?让我们cold$成为一个冷酷的观察者.会sth$.withLatestFrom(cold$,...)是一个热门观察?

    或者,如果我不sth1$.withLatestFrom(cold$,...), sth2$.withLatestFrom(cold$,...)和订阅sth1sth2,将我总是看到两个相同的值sth

  • 我认为Rx.fromEvent会产生冷的可观测量,但事实并非如此,正如其中一个答案所述.但是,我仍然对此行为感到困惑:codepen.io/anon/pen/NqQMJR?editors=101.不同的订阅从同一个observable获得不同的值.click事件不是共享的吗?

javascript reactive-programming rxjs rxjs5 angular

60
推荐指数
2
解决办法
1万
查看次数

调度程序:立即与CurrentThread

在阅读了解释原因之后

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实际上解决了这个问题.有人可以给出明确的解释吗?

system.reactive

9
推荐指数
1
解决办法
973
查看次数