当kotlin flow发出3次重复数据时,为什么在collection中只收到2次?

问题描述

我对 collect 函数进行了基本测试以学习 kotlin 流程。

测试过程中发生了一些奇怪的事情,所以我留下了一个帖子

在流程块中,存在输入 3 个相同的发射值的情况。 然后将采集到的数据输出到日志中。

代码内容:

   flow {
    emit(1)
    emit(1)
    emit(2)
    emit(2)
    emit(2)
    emit(2)
    emit(3)
    emit(3)
    emit(4)
    emit(4)
    emit(4)
    emit(5)
}.collect {
    println(it)
}

结果:

1
1
2
2
3
4
4
5

代码执行 emit(2) 4 次和 emit(4) 3 次。 但是 collect 只包含 24 2 次。

你知道为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)