【发布时间】:2015-03-15 02:26:09
【问题描述】:
我希望有人可以简要介绍一下使用服务的各种方式(这个只是返回一个字符串,通常是 JSON,但我只是想了解这里的概念)。
我的服务:
def ping = Action {
Ok("pong")
}
现在在我的 Play (2.3.x) 应用程序中,我想调用我的客户端并显示响应。
使用 Futures 时,我想显示值。 我有点困惑,我可以调用这个方法的所有方法,即我看到有一些方法使用成功/失败,
val futureResponse: Future[String] = WS.url(url + "/ping").get().map { response =>
response.body
}
var resp = ""
futureResponse.onComplete {
case Success(str) => {
Logger.trace(s"future success $str")
resp = str
}
case Failure(ex) => {
Logger.trace(s"future failed")
resp = ex.toString
}
}
Ok(resp)
我可以在 STDOUT 中看到成功/失败的跟踪,但我的控制器操作只是将“”返回到我的浏览器。
我知道这是因为它返回一个 FUTURE 并且我的操作在未来返回之前完成。
如何强制它等待? 我有哪些错误处理选项?
【问题讨论】:
标签: scala future playframework-2.3