有 Flow 版本的 flatMapIterable 吗?
Is there Flow's version of flatMapIterable?
我已经开始使用 Kotlin Flow。现在我正在努力从 api 返回的列表中逐个映射元素。是否有可用的运算符来执行类似 RxJava 的 flatMapIterable
的操作?
例如,当Flow有一个ArrayList<T>
,那么我想对该列表的每个元素进行操作,并将其作为一个新的Flow。
您可以使用 flatMapMerge
运算符来获得所需的结果。您可以通过以下方式将 Flow<List<T>>
转换为 Flow<T>
:
yourFlow.
flatMapMerge { it.asFlow() }
这样您就可以使用默认的 Flow 运算符进一步处理来自初始列表的每个元素的流。
这是文档:flatMapMerge
我已经开始使用 Kotlin Flow。现在我正在努力从 api 返回的列表中逐个映射元素。是否有可用的运算符来执行类似 RxJava 的 flatMapIterable
的操作?
例如,当Flow有一个ArrayList<T>
,那么我想对该列表的每个元素进行操作,并将其作为一个新的Flow。
您可以使用 flatMapMerge
运算符来获得所需的结果。您可以通过以下方式将 Flow<List<T>>
转换为 Flow<T>
:
yourFlow.
flatMapMerge { it.asFlow() }
这样您就可以使用默认的 Flow 运算符进一步处理来自初始列表的每个元素的流。
这是文档:flatMapMerge