获取改造异步调用的结果

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

我尝试使用改造来获取Web api的响应数据,但是响应数据的结果似乎不同步。

fun fetchData(): LiveData<String> {

    val auth = Credentials.basic(name, pass)
    val request: Call<JsonElement> = webApi.fetchData()
    val response: MutableLiveData<String> = MutableLiveData()

    request.enqueue(object : Callback<JsonElement> {

        override fun onFailure(call: Call<JsonElement>, t: Throwable) {
            Log.e(TAG, "Failed to fetch token", t)
        }

        override fun onResponse(call: Call<JsonElement>, response: Response<JsonElement>) {
            response.value = response.body()
            Log.d(TAG, "response: ${response.value}")  // I can get the result of response
        }
    })

    return response  // But the function return with the null
}

您可能需要处理程序。

android retrofit android-livedata
1个回答
1
投票

入队方法不等待响应,因此返回响应中的空结果是正常的。

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