flatMap的惯用方法Observable to Completable

时间:2017-04-03 14:18:54

标签: rx-java

我需要flatMap ObservableCompletable。我有这段代码:

public Completable doSomething() {
    return repository.getUser()
        .flatMap(new Func1<Action, Observable<Object>>(){
            @Override
            public Observable<Object> call(User user) {
                return Completable.merge(
                    doTask1(), //returns Completable
                    doTask2(), //returns Completable
                    doTask3() //returns Completable
                ).toObservable();
            }
    }).toCompletable();
}

它有效。但我觉得它有点乱。我将完成表(从Completable.merge())转换为Observable,然后我执行相反的操作(toCompletable())。有一个更好的方法吗?像这样:

public Completable doSomething() {
    return repository.getUser()
        .flatMap(new Func1<Action, Completable>(){
            @Override
            public Completable call(User user) {
                return Completable.merge(
                    doTask1(), //returns Completable
                    doTask2(), //returns Completable
                    doTask3() //returns Completable
                );
            }
    });
}

Observable&#34;转换&#34;使用flatMap直接转为完成。

0 个答案:

没有答案