Tim Malseed
06/17/2021, 3:03 AMTim Malseed
06/17/2021, 3:04 AMval skuDetails: MutableStateFlow<Set<SkuDetails>> = MutableStateFlow(emptySet())
Elsewhere:
val newSet = skuDetails.value.toMutableSet()
newSet.addAll(skuDetailsResult.skuDetailsList.orEmpty())
skuDetails.value = newSet
Collecting values:
coroutineScope.launch {
skuDetails.collect {
Timber.i("sku details: $it") // Never called
}
}
Tim Malseed
06/17/2021, 3:06 AMgildor
06/17/2021, 3:14 AMTim Malseed
06/17/2021, 3:22 AMcollect
too late, and missing the emissionsTim Malseed
06/17/2021, 3:27 AMinit { }
, the StateFlow emits as expectedTim Malseed
06/17/2021, 3:28 AMinit {
skuDetails.onEach {
Timber.i("Emitting ${it.size} sku details")
}.launchIn(coroutineScope)
}
This doesn't:
fun start() {
skuDetails.onEach {
Timber.i("Emitting ${it.size} sku details")
}.launchIn(coroutineScope)
}
foo.start()
Tim Malseed
06/17/2021, 3:29 AMstart()
is called.Tim Malseed
06/17/2021, 3:30 AMwasyl
06/17/2021, 5:57 AMinit
to fun start()
is trivial but clearly there’s something more tricky going on in your codebaselouiscad
06/17/2021, 11:30 AMTim Malseed
06/17/2021, 12:01 PMTim Malseed
06/17/2021, 12:01 PMlouiscad
06/17/2021, 12:11 PMTim Malseed
06/17/2021, 12:13 PMlouiscad
06/17/2021, 12:14 PMTim Malseed
06/17/2021, 12:15 PMlouiscad
06/17/2021, 12:15 PMScott Kruse
06/17/2021, 5:03 PM