0
我必须从我的Scala Play框架应用程序调用外部REST服务。使用WS API我得到一个未来,并不确定哪个是从这个未来“提取”价值的最佳方式。这里是我的代码:玩框架 - 使用WS API
val externalRestServiceCall: Future[List[Data]] = WS.clientUrl(dataSourceProperties.url).get().map {
response => response.json.as[List[Data]]
}
,这是我目前的做法,虽然返回一个未来:
val timeoutFuture = play.api.libs.concurrent.Promise.timeout("Oops", 1 second)
Future.firstCompletedOf(Seq(externalRestServiceCall, timeoutFuture)).map {
case first: List[Data] => Some(first)
case _ => None
}
非常有用的回复,我遵循了你的建议,并用Action.async封装了我的动作。 – ardlema 2014-08-30 18:15:04