打破 flatMapIterable 循环 RXJava

Break the flatMapIterable loop RXJava

我有一个列表,我正在通过 flatMapIterable 对其进行迭代。但是,如果迭代之间出现某些特定元素,我想中断迭代。例如。

 val list = Single.just(listOf<Int>(1,2,3,4,5,6))
            .toObservable()
            .flatMapIterable { it }
            .map {
                if(it == 3 ) TODO(" Break the iteration here.")
            }

我想迭代 1..6 的列表,如果中间有 3,我想停止迭代,我该怎么做?

您可以尝试 takeUntil 运算符

它看起来像下面这样:

Observable.fromIterable(listOf<Int>(1,2,3,4,5,6))
            .takeUntil{ it != 3 }

如果你想忽略 3 那么你可以使用 skipLast 运算符:

Observable.fromIterable(listOf<Int>(1,2,3,4,5,6))
            .takeUntil{ it != 3 }
            .skipLast(1)