并行处理Kotlin中的流发出的值
科特林代码并行处理Kotlin中的流发出的值,kotlin,flow,Kotlin,Flow,科特林代码 runBlocking { flow { for (i in 0..4) { println("Emit $i") emit(i) }} .onEach { if (it%2 == 0) delay(200) // Block 1 println("A: got $it") } .onEach { println("
runBlocking {
flow {
for (i in 0..4) {
println("Emit $i")
emit(i)
}} .onEach { if (it%2 == 0) delay(200) // Block 1
println("A: got $it")
}
.onEach { println("B: got $it") } // Block 2
.collect()
}
在控制台中打印:
Emit 0
A: got 0
B: got 0
Emit 1
A: got 1
B: got 1
Emit 2
...
我如何运行并行处理block1和block2,在block1之前从block2获取消息(一半情况下)?您可能对正在进行的讨论感兴趣: