god*_*zsa 2 rx-java reactivex rx-java2
我在 RxJava 中有一个函数,它试图根据条件找到一个事物,如果成功,它会转换并将其作为Observable. Observable.empty()如果找不到任何东西,我想返回,因此没有第一个。我不确定这一点,但我认为如果 filter 过滤掉 中的每个元素,Observable结果将是Observable.empty()无论如何(没有firstElement())。
void Observable<Thing> transformFirst(Observable<Thing> things,Predicate<Thing> condition){
return things
.filter(condition)
.firstElement()
.map(firstThing ->{...do sg...})
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我的问题是firstElement()回报Maybe<Thing>,我不知道如何把它转换成一个Observable.empty()当filter(condition)过滤掉一切(conditionevaulates为false,每thing)
您可以添加 switchIfEmpty() 如下所示,
return things
.filter(condition)
.switchIfEmpty(Observable.empty())
.firstElement()
.map(firstThing ->{...do sg...})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |