observable.publish().refCount()observable.share()之间的实际区别是什么?我们不想使用share的场景的示例是什么?

最佳答案

如果您查看“observate.prototype.share”,您将看到它只返回“source.publish().refcount()”,没有实际的区别。
至于你为什么想使用它,更多的问题是你需要多少控制,当你的源开始广播。
由于refCount()将在第一次订阅时附加基础的observate,因此很可能是这样的情况,即后续的观察者在订阅之前将错过传入的消息。
例如:

var source = Rx.Observable.range(0, 5).share();

var sub1 = source.subscribe(x => console.log("Observer 1: " + x));
var sub2 = source.subscribe(x => console.log("Observer 2: " + x));

只有第一个订阅服务器将接收任何值,如果我们都希望接收它们,我们将使用:
var source = Rx.Observable.range(0, 5).publish();

var sub1 = source.subscribe(x => console.log("Observer 1: " + x));
var sub2 = source.subscribe(x => console.log("Observer 2: " + x));

source.connect();

关于javascript - share()和publish()。refCount()之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30696262/

10-16 22:39