gpt4 book ai didi

java - RxJava 条件中断链

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:32 25 4
gpt4 key购买 nike

我正在创建一个可观察的序列,我基本上是在寻找一种在不满足条件时打破链条的好方法。理想情况下,我们可以通过这种情况下的错误。这基本上是为了删除平面图运算符中的 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
}
}
})

我见过诸如 filter() 和所有其他条件运算符之类的运算符,但我不确定它们是否满足我的要求。有一个更好的方法吗?还是我看起来不错?谢谢!

最佳答案

如何使用 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

关于java - RxJava 条件中断链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37051982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com