在结束 Fuel.post 之前 kotlin 返回值的函数



我有一个带有 Fuel.post 的函数,它在结束之前返回一个值 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
如何在结尾返回 res 值 Fuel.post?

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

我怀疑如果您使用阻止版本,您可能会得到您想要的结果。

完全未经尝试的代码:

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