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

我有一个Fuel.post函数,返回Fuel.post结束前的值,这是代码…

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

和我的function

 fun requestLogin(user : String, pass : String) : String { var res = "" val _params = HashMap() _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 } 

我使用这个lib: https : //github.com/kittinunf/Fuel
如何在Fuel.post结束时返回res值?

很明显,你正在使用该调用的异步版本。 通过将这个lambda传递给responseString() ,你告诉它它需要这个代码来处理这个响应,如果这个响应在未来某个时候回来的话,这个异步的。

我怀疑如果你使用阻塞版本 ,你可能会得到你的结果。

完全未经validation的代码:

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