RxJava过滤器'else'

Lau*_*Lau 7 android reactive-programming rx-android

我想分开我的可观察的if/else声明

就像是:

A[] array = new A[10];
for (int i = 0; i < array.length; i++) {
    array[i] = new A(getRandomString(), getRandomInt());
}

Observable.from(array)
    .filter(a -> condition(a))
        .// <--- do stuff  if condition returns true
        .// <- back to parent
    .filter(a -> complexCondition(a)) // filter all elements(!)
        .// <--- do stuff if complex condition returns true
        .// <- back to iterate all elements
Run Code Online (Sandbox Code Playgroud)

它甚至可能吗?

pau*_*aul 4

在 Observable 中并不是这样工作的,你必须认为 observable 就像一个流,你最终可以得到一些项目,或者其他项目。您在可观察量中发现的最接近的 if/else 将使用 GroupsBy。

这里有一些我解释如何工作的实际例子

https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/transforming/ObservableGroupBy.java