我提供了带有几种方法的服务,这些方法在我的代码的不同位置调用.
class Service {
method1() {
}
method2() {
}
我希望能够订阅这些方法调用,即具有一个observable,只要该方法之一被调用,它就会发出一个值.我意识到我可以使用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.
就您而言,代码正在调用您的方法,无论是否有任何“订阅”在调用方法时得到通知.订阅通知不会触发任何活动或行为更改.实际上,迟到的订户将“错过”在订阅之前进行的呼叫.