【发布时间】:2016-12-03 06:13:01
【问题描述】:
鉴于此:
TestSubscriber subscriber = new TestSubscriber();
ConnectableObservable<Integer> observable = Observable.just(1,2,3,4,5).publish();
observable.startWith(observable).subscribe(subscriber);
observable.connect();
订阅者在onNext中收到1,2,3,4,5但没有收到onCompleted。
如果我将代码更改为:
Observable.just(1,2,3,4,5).replay()
然后订阅者在 onNext 和 onCompleted 中收到 1,2,3,4,5,1,2,3,4,5,这也是我所期望的。
对我来说,这两种情况下的行为应该相同,因为所有订阅都发生在第一个示例中调用 .connect() 之前。
有人可以澄清为什么第一个场景的行为不同吗?
【问题讨论】:
-
在这种特殊情况下,
publish()在第一轮后断开连接,您等待第二轮再次连接。
标签: rx-java reactive-programming