4

Scalaを学んでいます。以前は Play Framework 2 Java を使用していましたが、Scala を使用して学習した以前の作業の一部を書き直そうとしました。

同期 WS 要求を実行し、コードのどこかから結果オブジェクトを取得する必要があります。

Java に戻っていたときは、次のようにしていました。

WS.url("someurl").get().get(5000);

またはT Promise<T>.get(Long timeout)正確には。

Scala に切り替えたので、現在使用してplay.api.libs.wsおり、コードを次のように書き直しました。

val somefuture:Future[Response] = WS.url("someurl").get();

しかし、Response from Future[Response]を同期して取得できません! .get()scala にはメソッドがありません。

synclyResponseからオブジェクトを取得するにはどうすればよいですか?Future[Response]

4

2 に答える 2

9

を使用しAwait.resultます。

import scala.concurrent.duration._
import scala.concurrent.Await

....

val future: Future[Response] = ...
Await.result(future, 10 seconds): Response
于 2013-04-30T09:45:57.687 に答える
2

.map を使用して、非同期の結果を返します。この例をチェックしてください:

https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/play-scala/app/controllers/Application.scala#L44

于 2013-05-01T03:41:45.317 に答える