Есть ли у Flow версия flatMapIterable? - PullRequest
1 голос
/ 22 марта 2020

Я начал использовать Kotlin Flow. Сейчас я пытаюсь отобразить элементы из списка, возвращаемого API, один за другим. Есть ли оператор, который делает что-то вроде Rx Java 's flatMapIterable?

Например, когда у потока есть ArrayList<T>, я хочу выполнить операцию над каждым элементом этого списка и получить его как новый поток.

1 Ответ

1 голос
/ 22 марта 2020

Вы можете использовать оператор flatMapMerge для достижения желаемого результата. Вы можете преобразовать Flow<List<T>> в Flow<T> следующим образом:

yourFlow.
   flatMapMerge { it.asFlow() }

Таким образом, вы можете дополнительно обработать поток из каждого элемента исходного списка, используя операторы потока по умолчанию.

Вот что делает c: flatMapMerge

...