我遇到了一个非常不寻常的问题,其中LiveDataScope没有引发在存储库中启动的异常。问题是,如果我放置了一个livedata事件来代替发出,它将被分派给观察者,但是使用发出,它将不会向其启动事件。
ViewModel:
fun launchJob(makeThis: suspend LiveDataScope<ViewState>.() -> Unit): LiveData<ViewState> =
liveData {
viewModelScope.launch {
emitLoad()
try {
makeThis(this@liveData)
} catch (error: Error){
//its work
showErrorEvent.value = Pair(error, true)
// not work
emit(ViewState.Error(error))
}
}
}
viewmodel implementation
/**
* Método responsável por realizar o método de reset de senha.
* */
fun requestReset() = launchJob {
emitSucess(shippingMethodRepository.resetPassword(method))
}
基础存储库
suspend fun getAsyncData(params: P): T {
try {
return api.invoke(params)
} catch (error: Exception) {
error.printStackTrace()
throw error
}
}
正如我提到的,将发射更改为不同的实时数据,活动将对其进行观察,并且还读取了发射之前的所有代码以及Log等。>
我遇到了一个非常不寻常的问题,其中LiveDataScope没有引发在存储库中启动的异常。问题是,如果代替发出,我放置了一个livedata事件,它是...
来自文档: