如何将String(bytes)
返回到getPost函数,这样我就可以println(getPost(123))
,它将打印String的值(字节(?
fun getPost(id: Int) {
Fuel.get("https://kitsu.io/api/edge/posts/$id")
.response { request, response, result ->
val(bytes, error) = result
if(bytes != null) {
println(String(bytes))
//I want to return String(bytes)
}
}
}
您使用的API是一个异步API,它是基于回调的。这意味着这里的lambda是异步运行的,当getPost
函数返回时可能还没有运行。因此,当从getPost
返回时,不可能得到其结果。
为了以类似同步的方法处理这类情况,同时保留异步执行的好处,可以使用suspend
函数和Kotlin协程。燃油有一个附加模块,您可以使用它来实现这一点:https://fuel.gitbook.io/documentation/support/fuel-coroutines