连接到一个可观察到的许多观察者接收事件一次一个

连接到一个可观察到的许多观察者接收事件一次一个

问题描述:

这是我创造我观察到:连接到一个可观察到的许多观察者接收事件一次一个

Observable.fromCallable(new EventObtainer()).flatMap(Observable::from).subscribeOn(Schedulers.io()).repeat(); 

而在这之后,通过HTTP请求我想要添加不同的观察者。问题是,如果我有不止一个观察者,我无法预测哪个观察者将获得发射物品。为什么不可观察到的东西会向每个订阅的观察者发射项目,但是对于不同的观察者而言,有时会有一个项目?

我解决了这个,

在观察的合同: http://reactivex.io/documentation/contract.html 有资料显示:

没有一般保证同一 可观察到的两个观察者会看到项目的顺序相同。

所以我解决它通过使我观察到的可连接的可观察的发布,然后就可以调用connect方法:

Observable.fromCallable(new EventObtainer()).flatMap(Observable::from).subscribeOn(Schedulers.io()).repeat().publish(); 
observable.connect(); 

,现在即使异步我会添加更多的观察员,它将会发射获得项目每个观察员。