[英]How to send an object inside a Coroutine Kotlin?
我开始在 Kotlin 中使用协程,我想将片段中的对象作为参数传递,但我仍然不明白这个对象如何发生在这个协程上,我真的很感激你的帮助
val addObject: LiveData<Object> = liveData {
emit(Result.loading())
try {
emit(Result.success(fetchUser()))
} catch(ioException: Exception) {
emit(Result.error(ioException))
}
}
从我的片段中,我必须发送我的对象然后才能观察它
productViewModel.addObject(Object).observe
你不能在一个甚至没有意义的参数中传递一个对象。
你可能想要做的是这样的
视图模型
private val _liveData: MutableLiveData<Object> = MutableLiveData()
val liveData:LiveData<Object>
get() = _liveData
fun addObject(myObject:Object){
// do work here
emit(someData)
}
或者甚至只是
fun addObject(myObject:Object):LiveData<Object>{
val liveData: MutableLiveData<Object> = MutableLiveData()
viewModelScope.launch {
//do work then emit back
liveData.postValue(it)
}
return liveData
}
活动
viewModel.liveData.observe(this, Observer{
})
viewModel.addObject(myObject)
或者对于第二个例子
viewModel.addObject(myObject).observe(this, Observer{
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.