它是否根据每个请求正确创建 viewModelscope.launch?
Does it correct create viewModelscope.launch on every request?
我有这样的代码:
class MyViewModel: ViewModel() {
val myRepository = ExampleRepository()
init {
fetchServerRequest()
}
fun reload() {
fetchServerRequest()
}
private fun fetchServerRequest() {
viewModelScope.launch {
myRepository.fetchServerRequest() //repository returns Flow<String>
.collect {
//handle result
}
}
}
}
存储库 returns 冷流。每次调用此方法时都创建新的协程 c 是否正确?
或者当 collect 中的代码完成时协程将完成?
你做的很好,viewModelScope.launch()
不是创建一个新的 Coroutine
,而是创建一个新的 Job
,你可以看到 return 类型,如果你把鼠标放在 launch()
.
Or coroutine will be finished when code in collect will finished?
你可以看看我的另一个post .
我有这样的代码:
class MyViewModel: ViewModel() {
val myRepository = ExampleRepository()
init {
fetchServerRequest()
}
fun reload() {
fetchServerRequest()
}
private fun fetchServerRequest() {
viewModelScope.launch {
myRepository.fetchServerRequest() //repository returns Flow<String>
.collect {
//handle result
}
}
}
}
存储库 returns 冷流。每次调用此方法时都创建新的协程 c 是否正确?
或者当 collect 中的代码完成时协程将完成?
你做的很好,viewModelScope.launch()
不是创建一个新的 Coroutine
,而是创建一个新的 Job
,你可以看到 return 类型,如果你把鼠标放在 launch()
.
Or coroutine will be finished when code in collect will finished?
你可以看看我的另一个post