Scala从future中提取结果

Scala从future中提取结果,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我不熟悉Scala,玩和使用期货。 我有下面的Play类,它进行API调用并在将来封装结果 我如何从未来中提取结果 class WikiArticle(url : String) { var future : Future[WSResponse] = null def queryApi(): Unit = { val holder : WSRequest = WS.url(url) future = { holder.get() } fut

我不熟悉Scala,玩和使用期货。 我有下面的Play类,它进行API调用并在将来封装结果

我如何从未来中提取结果

class WikiArticle(url : String) {

  var future : Future[WSResponse] = null

  def queryApi(): Unit = {
    val holder : WSRequest = WS.url(url)
    future = {
      holder.get()
    }
    future.onSuccess({
      //How do I extract the result here?
    });
  }

尽量避免从将来提取结果。为此,您可以使用以下内容链接将来的调用:

val chainResult = for {
   result1 <- apiCallReturningFuture1;
   result2 <- apiCallReturningFuture2(result1)
} yield result2
所以我不建议等待期货,除非等待测试

future.onSuccess({
  case result => result.json
})
future.onSuccess({
  case result => result.json
})