У меня есть наблюдаемое событие, которое может иметь несколько наблюдателей.
Первый наблюдатель - это всегда код очистки, который удалит все остальные подписки на наблюдаемое (это потому, что некоторые другие наблюдатели могут быть добавлены позже некоторымидругие части кода).
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
для первого наблюдателя.Но это не похоже на правильный способ сделать это.
Можно ли должным образом гарантировать, что первый наблюдатель всегда вызывается после того, как были вызваны другие существующие наблюдатели?