javascript - 有没有办法在不使用 Subject 的情况下创建由方法调用触发的可观察序列?

标签 javascript rxjs

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

class Service {
  method1() {
  }

  method2() {
  }

我希望能够订阅那些方法调用,即有一个可观察对象,只要其中一个方法被调用就会发出一个值。我知道我可以用 Rx.Subject 来做到这一点,但我想知道是否有办法不用它,因为我的案例不满足列出的要求 here即我不需要热可观察对象。

最佳答案

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

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

Hot observables do not cause subscription side effects.

Cold observables do cause subscription side effects; however, we must assume that any observable with an unknown temperature is cold, and sometimes that assumption will be wrong; therefore, a more accurate definition is:

Cold observables may cause subscription side effects.

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

关于javascript - 有没有办法在不使用 Subject 的情况下创建由方法调用触发的可观察序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148646/

相关文章:

javascript - Rx js过滤器方法不返回过滤器数组

javascript - SyntaxError : JSON. 解析:意外字符

javascript - jQuery append 跳过空格后的内容

javascript - 检查用户现在是否触摸屏幕(JS)

javascript - node.js/javascript -- 嵌套回调

rxjs - RXJS 库中 Observable.of 运算符的目的是什么?

angular - 为什么我的 RxJS 订阅错误处理程序没有触发?

javascript - 如何避免使用异步服务重复填充数组

angular - 在 Angular 6 组件 ngOnInit 函数中测试 rxjs 间隔

javascript - 将 AngularJS 与工厂和 Controller 一起使用