【问题标题】:Is there a way to create an observable sequence triggered by method calls without using Subject?有没有办法在不使用 Subject 的情况下创建由方法调用触发的可观察序列?
【发布时间】:2016-07-02 00:42:25
【问题描述】:

我的服务有几个方法,在我的代码的不同位置调用。

class Service {
  method1() {
  }

  method2() {
  }

我希望能够订阅这些方法调用,即有一个 observable,每当调用这些方法之一时,它就会发出一个值。我意识到我可以用Rx.Subject 做到这一点,但我想知道是否有办法做到这一点,因为我的案例不满足here 列出的要求,即我不需要热观察。

【问题讨论】:

    标签: javascript rxjs


    【解决方案1】:

    使用主题。根据定义,你想要的 observable 是热的。

    再次阅读Hot and Cold Observables 文章。这是重要的一点:

    Hot observables不会导致订阅副作用。

    冷的 observable 确实会导致订阅副作用;然而,我们必须假设任何温度未知的可观测物体都是冷的,有时这种假设是错误的;因此,更准确的定义是:

    冷的 observables可能导致订阅副作用。

    在您的情况下,代码正在调用您的方法,无论是否有任何“订阅”在调用方法时得到通知。订阅通知不会触发任何活动或行为变化。事实上,迟到的订阅者会“错过”在订阅之前拨打的电话。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 2021-10-25
      • 2019-11-14
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多