打破flatMapIterable循环RXJava

问题描述 投票:0回答:1

我有一个列表,我正在通过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个,我想停止迭代,我该怎么做?

android kotlin rx-java
1个回答
0
投票

您可以尝试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)
© www.soinside.com 2019 - 2024. All rights reserved.