我有一个服务有几个方法,在我的代码的不同地方调用。
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/