Сцепление наблюдаемых RxJava - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь сделать таким образом цепочку наблюдателей

1 шаг (порядок здесь не важен, поэтому они могут выполняться одновременно)

Task_User_Login.run();   -> Completable
downloadListOfStreets(); -> Completable

2 Шаг должен быть выполнен ПОСЛЕ шага 1 (порядок внутри не важен, поэтому они могут выполняться одновременно, оба должны быть объединены)

downloadListOfProducts();    -> Observable<Object>
downloadListOfIngredients(); -> Observable<Object>

3 Шаг должен быть выполнен ПОСЛЕ шага 2

logoutDummySession();   -> Completable

EDIT

Я пробовал несколько вещей ... но я не могу понять, как заставить это работать. Это мой последний код

(Task_User_Login.run(AppConstants.defaultLoginParameters))
                .andThen(downloadListOfStreets().doOnComplete(this::onStreetsDownloaded))
                    .andThen(Observable.merge(downloadListOfProducts(), downloadListOfIngredients()))
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .doOnNext(item -> updateItemsDownloaded())
                        .doOnError(error -> downloadCompleted.postValue(Response.error(error)))
                        .doOnComplete(() -> downloadCompleted.postValue(Response.success(null)))
                        .subscribe();

Теперь проблема в том, что мне нужно подождать, пока не будет сделан первый шаг, чтобы сделать следующий, а сейчас этого не происходит.

Любая помощь будет очень признательна.

...