RxJava multi Observable выполняется по порядку

#rx-java2

#rx-java2

Вопрос:

Есть три наблюдателя A, B, C

Сначала выполните наблюдателя A и отправьте данные, полученные наблюдателем A

Затем выполните наблюдателя B без отправки данных

Наконец, запустите C observer и отправьте данные, полученные C observer

Как этого добиться с помощью Rxjava?

    Observable A = Observable.create(new ObservableOnSubscribe<List<T>>() {
            @Override
            public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
                T data;
                ...
                emitter.onNext(data);
                emitter.onComplete();
            }
        }).subscribeOn(Schedulers.io());

   Observable B = Observable.create(new ObservableOnSubscribe<List<T>>() {
            @Override
            public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
               //no need to call onNext
                ...
                
                emitter.onComplete();
            }
        }).subscribeOn(Schedulers.io());

   Observable C = Observable.create(new ObservableOnSubscribe<List<T>>() {
            @Override
            public void subscribe(ObservableEmitter<List<T>> emitter) throws Throwable {
                T data;
                ...
                emitter.onNext(data);
                emitter.onComplete();
            }
        }).subscribeOn(Schedulers.io());
 

A, B, C используют один и тот же наблюдатель

Комментарии:

1. Что такое Observable s? Куда Observer s отправляют данные? Пожалуйста, уточните свой вопрос.

2. Я добавил псевдокод, пожалуйста, помогите мне увидеть

Ответ №1:

Вы можете просто Observable объединить 3 секунды и получить каждую List<T> из них через одного и того же наблюдателя:

 Observable<List<T>> A = ...
Observable<List<T>> B = ...
Observable<List<T>> C = ...

Observable.concat(A, B, C)
.subscribe(list -> {
    // process each list from A, B, C in order
});