是否有一种方法可以创建由方法调用触发的可观察序列,而不使用Subject

Is there a way to create an observable sequence triggered by method calls without using Subject?

本文关键字:方法 观察 Subject 调用 一种 是否 创建      更新时间:2023-09-26

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

class Service {
  method1() {
  }
  method2() {
  }

我希望能够订阅这些方法调用,即有一个可观察对象发出一个值每当这些方法之一被调用。我意识到我可以用Rx.Subject做到这一点,但我想知道是否有办法做到这一点,因为我的情况不满足这里列出的要求,即我不需要一个热的可观察对象。

使用主题。根据定义,你想要的可观察对象是hot。

再读一遍《冷热观测》一文。这里是重要的部分:

热观测不会引起订阅副作用。

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

冷观测可能导致订阅副作用。

在你的例子中,代码调用你的方法,无论是否有"订阅"。在调用方法时得到通知。订阅通知不会触发任何活动或行为更改。事实上,迟到的订阅者将"错过"。