Antoine Gagnon
03/02/2020, 7:44 PMAntoine Gagnon
03/02/2020, 7:45 PMmarstran
03/02/2020, 7:58 PMDeferred
maybe? You could just await
it multiple times.marstran
03/02/2020, 7:59 PMAntoine Gagnon
03/02/2020, 8:20 PMFaraz
03/03/2020, 10:15 AMBehaviourSubject
from rxjava?marstran
03/03/2020, 10:32 AMFlow
is cold, which means that you will trigger the network call again every time you collect it. So a Deferred
seems like a better fit to me.marstran
03/03/2020, 10:36 AMsuspend fun performNetworkCall() = network.call()
suspend fun service() = coroutineScope {
val value = async { performNetworkCall() }
listener1(value)
listener2(value)
}
suspend fun listener1(value: Deferred<Data>) {
println("Listener 1: ${value.await()}")
}
suspend fun listener2(value: Deferred<Data>) {
println("Listener 2: ${value.await()}")
}
Antoine Gagnon
03/03/2020, 2:39 PM