我在存储库中有一个函数,它根据参数从网络或远程数据源返回响应。
suspend fun getBooks(isNetwork: Boolean) : Flow<Books>
我想在 View 模型中收集它,但每次调用 ViewModel 方法时都会创建一个新的协程。我知道我应该在暴露给 UI 层之前映射流程但是我如何将参数传递给函数?
fun getBooks(isNetwork: Boolean) {
viewModelScope.launch {
bookRepository.getBooks(isNetwork).collectLatest { books ->
...
}
}
}
这里getBooks函数也是用来做网络调用的,需要多次调用。每次从 ViewModel 调用 getBooks 时,都会创建一个新的协程,因此会创建多个观察者。