当您需要共享可观察执行时,您可以使用执行publish()
和refCount()
方法的共享运算符,但在使用Subjects
时如何使用refCount()
}?
new Subject().refCount()
答案 0 :(得分:2)
这是因为refCount()
与其他运营商不同。
使用publish()
运算符时,它会返回ConnectableObservable
的实例。 refCount()
is an operator specific only to ConnectableObservable
并且您无法在任何其他Observable中找到它。
一个很好的问题是您希望通过refCount()
和Subject
实现的目标,因为refCount()
只有在您想要订阅/取消订阅源Observable时才有意义(我不会#39} ;不知道你的具体用例是什么。)
无论如何,如果有意义的话,你总是可以使用(new Subject()).publish().refCount()
。
答案 1 :(得分:1)
Subject
已经热,这意味着无需额外使用refCount
或publish
等。
这是docs:
的摘录通过这种方式,主题可以充当一组订阅者的代理和来源。 [...]此外,您可以使用主题向多个订阅者广播数据。