无法通过协同Coroutine api调用获得响应

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

我正在尝试从api获取对实时数据的响应,但是此代码未调用请求。

class AuthActivityViewModel : ViewModel() {

    var authResp: LiveData<ObjAuthResp> = MutableLiveData()

    val repository = BaseRepository()

    fun login(username: String, password: String) {
        authResp = liveData(Dispatchers.IO) {
          val resp = repository.login(username, password)
            emit(resp)
        }
    }
}

但它适用于此代码。

class AuthActivityViewModel : ViewModel() {

    val repository = BaseRepository()

    var authResp = liveData(Dispatchers.IO) {
        val resp = repository.login(username, password)
            emit(resp)
    }    

}

API服务

@POST("profile/pub/auth/login")
suspend fun login(@Body authReqBody : ObjAuthReqBody): ObjAuthResp

BaseRepository

open class BaseRepository {

    suspend fun login(username:String,password:String) = service.login(ObjAuthReqBody( username, password))   
} 

从活动中致电

   btn_login.setOnClickListener {
    viewModel.login(edt_username.text.toString(), 
    edt_password.text.toString())
    }
android retrofit2 android-livedata kotlin-coroutines
1个回答
0
投票

请参阅以下文件。可能会有帮助。

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