【发布时间】:2020-06-22 20:41:32
【问题描述】:
launchIn 的实验性实现由于未在 suspend 函数中实现而引发错误。我已经提交了issue 以查看是否有意这样做。
错误
暂停函数“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 -> ...
}
}
}
【问题讨论】:
标签: android kotlin kotlin-coroutines