c-a*_*-an 3 android coroutine kotlin kotlin-coroutines kotlin-flow
lifeCycleScope.launch {
viewModel.oneItem.collect {
println("one")
}
viewModel.twoItem.collectLatest {
println("two")
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了这段代码,但它只打印“一个”,而且似乎第二个collectLatest不起作用。这是为什么?
第一个collect函数是一个suspend函数,它暂停当前的协程,直到收集完所有项目。如果viewModel.oneItem是无穷大,那么它永远不会去执行函数viewModel.twoItem.collectLatest。在这种情况下,要调用这两个函数,必须启动两个协程:
lifeCycleScope.launch {
launch {
viewModel.oneItem.collect {
println("one")
}
}
launch {
viewModel.twoItem.collectLatest {
println("two")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |