kotlin 中的函数 return 结束前的值 Fuel.post

Function in kotlin return value before ends Fuel.post

我有一个带有 Fuel.post 的函数,return 是 Fuel.post 结束前的一个值,这是代码...

var res = rs.requestLogin("user", "password")

和我的函数

fun requestLogin(user : String, pass : String) : String {
  var res = ""
    val _params = HashMap<String, String>()

    _params.put("user", user)
    _params.put("pass", pass)

    Fuel.post(Constantes.ENDPOINT_LOGIN, _params.toList())
            .responseString(Charset.forName("UTF8")){ request, response, result ->
                when (result) {
                    is Result.Success -> {
                        res = "0"
                    }

                    is Result.Failure ->{
                        res = "-1"
                    }
                }
            }
    return res
}

我使用这个库:https://github.com/kittinunf/Fuel
我如何在 Fuel.post 结束时 return 恢复值?

显然您正在使用该调用的异步版本。通过将该 lambda 传递给 responseString(),您告诉它您希望该代码在响应将来某个时间返回时异步处理响应。

我怀疑如果你使用 blocking version,你可能会得到你想要的结果。

完全未尝试过的代码:

val (request, response, result) = Fuel.post(Constantes.ENDPOINT_LOGIN, _params.toList())
    .responseString()
return if(result == Result.Success) "0" else "-1"