用例实际上是相当典型的。许多 Web 服务使用您在会话开始时检索的授权令牌,您需要在后续请求中将其发回。
我知道我可以这样做:
lazy val myData = {
val request = ws.url("/some/url").withAuth(user, password, WSAuthScheme.BASIC).withHeaders("Accept" -> "application/json")
Await.result(request.get().map{x => x.json }, 120.seconds)
}
这感觉不对,因为所有文档都说我们永远不会等待。
是否有 Future/Promise Scala 风格的处理方式?
我发现.onComplete
它允许我在完成 Promise 时运行代码,但是不使用(可变)var
我看不到将该范围内的值获取到lazy val
不同范围内的方法。即使var
有一个可能的时间问题 - 因此可变变量的弊端:)
还有其他方法吗?