Код: Выделить всё
fun main() {
val flow = MutableSharedFlow(
replay = 0,
extraBufferCapacity = 0,
onBufferOverflow = BufferOverflow.SUSPEND
)
runBlocking {
launch {
flow.collect {
println("collector1: start collect ${it}")
delay(1000)
println("collector1: collect finish ${it}")
}
}
launch {
(3..4).forEach {
println("emit ${it}")
flow.emit(it)
}
}
}
}
Код: Выделить всё
emit 3
collector1: start collect 3
emit 4
collector1: collect finish 3
collector1: start collect 4
collector1: collect finish 4
Код: Выделить всё
emit 3
collector1: start collect 3
collector1: collect finish 3
emit 4
collector1: start collect 4
collector1: collect finish 4
Код: Выделить всё
fun main() {
val flow = MutableSharedFlow(
replay = 0,
extraBufferCapacity = 0,
onBufferOverflow = BufferOverflow.SUSPEND
)
runBlocking {
launch {
flow.collect {
println("collector1: start collect ${it}")
delay(1000)
println("collector1: collect finish ${it}")
}
}
launch {
flow.collect {
println("collector2: start collect ${it}")
delay(2000)
println("collector2: collect finish ${it}")
}
}
launch {
(3..4).forEach {
println("emit ${it}")
flow.emit(it)
}
}
}
}
Код: Выделить всё
emit 3
collector1: start collect 3
collector2: start collect 3
collector1: collect finish 3
collector2: collect finish 3
emit 4
collector1: start collect 4
collector2: start collect 4
collector1: collect finish 4
collector2: collect finish 4
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-finished