LiveDataScop发出未调用的声音

问题描述 投票:1回答:1

我遇到了一个非常不寻常的问题,其中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事件,它是...

android viewmodel android-livedata kotlin-coroutines
1个回答
0
投票

来自文档:

© www.soinside.com 2019 - 2024. All rights reserved.