连接到一个可观察到的许多观察者接收事件一次一个
问题描述:
这是我创造我观察到:连接到一个可观察到的许多观察者接收事件一次一个
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();
,现在即使异步我会添加更多的观察员,它将会发射获得项目每个观察员。