I have issue with the following code:
suspend fun getData(): Flow<Resource<User>> {
println("#getData called")
return channelFlow {
println("#getData producer scope started")
launch(Dispatchers.IO) {
val cachedData = sharedPreferencesUtils.getData()
println("#getData send cached data")
send(cachedData)
}
launch(Dispatchers.IO) {
val response = handleAPI<EducationResponse> { apiService.getData() }
println("#getData send remote data")
send(response)
}
}
}
Above code is working most times and send data from local and remote, but sometimes the producer scope not triggered (it print "#getData called" only)
Please advice!
UPDATE:
and the Flow collected:
CoroutineScope(Dispatchers.IO).launch(AppExceptionHandler.exceptionHandler) {
prescriptionsRepository
.getData()
.collect {
educationWithSponsorsLiveData.postValue(it)
}
}
from ChannelFlow producer scope is not triggered
No comments:
Post a Comment