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

Many observer connected to one observable receive events one at a time

这就是我创建可观察对象的方式:

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

之后,我尝试通过 http 请求添加不同的观察者。问题是,如果我有多个观察者,我无法预测哪个观察者将获得发射的物品。为什么 observable 不向每个订阅的观察者发出项目,而是一次向不同的观察者发出一个项目?

我解决了这个问题,

在可观察的合约中: http://reactivex.io/documentation/contract.html 有信息:

There is no general guarantee that two observers of the same Observable will see the same sequence of items.

所以我通过发布使我的可观察的 Connectable 可观察,然后在其上调用 connect 方法来解决它:

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

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