【发布时间】:2019-05-14 19:28:36
【问题描述】:
我有一个可观察的事件,它可以有多个观察者。
第一个观察者始终是一个清理代码,它将处理所有其他对可观察对象的订阅(这是因为所有其他观察者可以稍后通过代码的其他部分添加)。
CompositeDisposable disposable = new CompositeDisposable();
Observable<Object> eventObservable = Observable.just(1);
disposable.add(eventObservable.subscribe(event -> {
disposable.dispose();
System.out.println("Observer 1");
}));
disposable.add(eventObservable.subscribe(event -> {
System.out.println("Observer 2");
}));
disposable.add(eventObservable.subscribe(event -> {
System.out.println("Observer 3");
}));
当前输出:
Observer 1
预期输出:
Observer 2
Observer 3
Observer 1
实现此目的的一种方法是为第一个观察者添加delay。但这似乎不是正确的方法。
是否可以正确确保第一个观察者总是在其他现有观察者被调用之后被调用?
【问题讨论】: