Цепочка в RxJava - PullRequest
       8

Цепочка в RxJava

0 голосов
/ 29 мая 2018

У меня следующая проблема.Я использую Room и RxJava, и все идет хорошо, но мне нужно соединить 4 операции rx в следующем порядке:

1 - вставить некоторые данные

2 - запросить некоторые данные

3 - Запрашивая данные, сделайте еще одну вставку

4 - Обновите

Это мой код, но он не работает.

Completable c = Completable.fromAction(() -> System.out.println("Inserting data"));
Flowable f = Flowable.fromArray(1);
Completable c1 = Completable.fromSingle((x) -> System.out.println("Inserting more data with: " + x));
Completable c2 = Completable.fromAction(() -> System.out.println("Updating"));

c.andThen(f).mergeWith(c1).mergeWith(c2).subscribe();

И это вывод

Inserting data
Inserting more data with: io.reactivex.internal.operators.completable.CompletableFromSingle$CompletableFromSingleObserver@233c0b17
Updating

Пропускается вторая наблюдаемая

1 Ответ

0 голосов
/ 29 мая 2018
Completable insert = Completable.fromAction(() -> System.out.println("Inserting data"));
Single<Integer> query = Single.just(1);
Completable update = Completable.fromAction(() -> System.out.println("Updating"));
Completable insertMore = query.flatMapCompletable(x ->
        Completable.fromAction(() ->
                System.out.println("Inserting more data with: " + x)
        ));

insert.andThen(insertMore).andThen(update).subscribe();
...