我需要flatMap
Observable
到Completable
。我有这段代码:
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
直接转为完成。