Kotlin:如何将lambda中的值返回给父函数



如何将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

相关内容

  • 没有找到相关文章

最新更新