【发布时间】:2021-09-03 11:25:36
【问题描述】:
我有一个延迟初始化的属性。 现在我想提供一个在属性完全初始化之前不会发出任何东西的实时数据。 如何以正确的 Kotlin 方式做到这一点?
class SomeConnection {
val data: Flow<SomeData>
...
class MyViewModel {
private lateinit var _connection: SomeConnection
// private val _connection: CompletableDeferred<SomeConnection>()
val data = _coonection.ensureInitilized().data.toLiveData()
fun connect(){
viewModelScope.launch {
val conn = establishConnection()
// Here I have to do something for the call ensureInitilized to proceed
}
}
private suspend fun establishConnection(){
...
}
【问题讨论】:
标签: android kotlin android-livedata coroutine deferred