Kotlin Coroutine Flow中Observable.fromIterable的等效实现方法
Kotlin Flow 实现 RxJava Observable.fromIterable 逻辑
你的RxJava代码是将一个集合转换为Observable流,依次发射集合内的元素。对应的Kotlin Flow实现非常直接,有两种常用方式:
方式一:使用 asFlow() 扩展函数(推荐)
这是最贴合RxJava fromIterable 语义的写法,Kotlin协程库为Iterable提供了专门的扩展函数,直接将集合转为Flow:
val list = listOf<Int>() val flow = list.asFlow()
方式二:使用 flowOf 函数
如果需要通过可变参数的方式构建流,可以先将集合转为数组再展开:
val list = listOf<Int>() val flow = flowOf(*list.toTypedArray())
两种方式都会依次发射集合中的每个元素,流完成后结束,和你原来的RxJava代码行为完全一致。
内容的提问来源于stack exchange,提问作者Enes Zor
相关产品推荐
相关产品推荐

