Ric*_*ick 9 java conditional android rx-java rx-android
我正在创建一个可观察的序列,我基本上寻找一种很好的方法来打破链条,如果条件不满足.理想情况下,我们可以通过此方案中的错误.这基本上是删除flatmap运算符中的if/else语句.这就像我现在的样子
flatMap(new Func1<User, Observable<Response>>() {
@Override
public Observable<Response> call(Result result) {
if(isValid(result))) {
return api.getObservableResponse(); //some retrofit observable
} else {
observer.onError();
return null; //??? I guess this would force an error
}
}
})
Run Code Online (Sandbox Code Playgroud)
我已经看过过滤器()和所有其他有条件的运算符,但我不确定它们是否符合我的要求.有一个更好的方法吗?或者我看起来很好吗?谢谢!
takeWhile
使用-docs怎么样?
Observable<T> whatever = ...
Observable<T> untilConditionMet = whatever
.takeWhile(this::isValid) // modify according wherever isValid comes from
.flatMap(r -> api.getObservableResponse()); // only doing this until isValid
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3478 次 |
最近记录: |