Экспериментальная реализация launchIn
выдает ошибку, если не реализовать функцию suspend
. Я подал проблему , чтобы узнать, предназначено ли это поведение.
Ошибка
Следует вызвать функцию приостановки getFeed только из сопрограммы или другой функции приостановки
Однако, поскольку launchIn
является создателем сопрограммы, эта ошибка не представляется действительной.
feedRepository.getFeed().onEach { results ->
when (results.status) {
LOADING -> ...
SUCCESS -> withContext(Dispatchers.Main) {
_feedViewState._feed.value = results.data
}
ERROR -> ...
}
}
.flowOn(Dispatchers.IO)
.launchIn(viewModelScope)
Оригинальная реализация
viewModelScope.launch(Dispatchers.IO) {
feedRepository.getFeed().collect { results ->
when (results.status) {
LOADING -> ...
SUCCESS -> withContext(Dispatchers.Main) {
_feedViewState._feed.value = results.data
}
ERROR -> ...
}
}
}