1

これをグーグルで検索しましたが、答えが見つかりません。

Scala/play フレームワークで URL への GET を作成し、その結果で何かをしたいと考えています。結果に必要なものが含まれている場合は、他のパラメーターを使用して再度呼び出したいと思います。これは最大で 100 回程度になる可能性があるため、複数の WS をネストすることはできません。探しているものが見つかるまでループのように同じ呼び出しを何度も実行したいのですが、以下のすべてのコードをループでラップすると、各呼び出しが終了するのを待ちません。しかし、どうすればこれを解決できますか?

var index = 0

val call = WS.url("http://urlToGetSomethingFrom&parameter="+index).get()

for{

response <- call

} yield{

  val something: String = response.json / "name"

  if(something.equals("Eric")){

    //I'm finished, break out

  }else{

    index += 1

    //and then I want to do the same call again
  }

}
4

4 に答える 4

1

get()を返しますFuture。完了するのを待つために、有効期限とともに
渡す必要があります。Await.result

例: https://stackoverflow.com/a/16296848/604041

于 2013-05-13T17:46:18.030 に答える
0

Techempower ベンチマーク用に Play チームが Scala で作成した別の例を次に示します。

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

于 2013-05-14T04:03:04.070 に答える