我正在尝试使用RxJava实现的工作流程,因为我对它很新,我很难理解如何实现它。 这就是我想要实现的目标:
Observable<String> methodA(String input){
retValue = methodB(input);
if(something){
return retValue;
} else{
return methodC(input);
}
}
Observable<String> methodB(String input);
Observable<String> methodC(String input);
我正在尝试使用map()
,但实际上我找不到真正有用的方法。
有什么想法吗?
答案 0 :(得分:1)
使用.flatMap()
(如果您的条件取决于方法B的结果):
retValue = methodB(input)
.flatMap(item -> {
if(something){
return just(item);
} else{
return methodC(item);
}
})
答案 1 :(得分:1)
或者你可以使用组合 filter / switchIfEmpty 如果你想避免旧时尚如果
retValue = methodB(input)
.filter(something)
.switchIfEmpty(methodC(item))