我正在探索Play Framework,并遇到了一些困难。
在使用WS库对GoogleAnalytics进行API调用之后,我收到了一个Future[Response]
对象。在消化了Response对象之后,我得到了我真正关心的数据,但由于它被封装在Future中,我在将它写入浏览器时遇到了一些困难。
OK( gaApiString )
这给了我一个错误,上面写着:
无法将scala.concurrent.Fotel[String]的实例写入HTTP回答尝试定义可写[scala.concurrent.Foret[String]]
我在找&理解如何使用CCD_ 2对象。帮不了什么忙?
您需要将map
、Future
传递给Future[Result]
,并将其传递给Action.async
。
def test = Action.async {
val wsResult: Future[String] = ...
wsResult.map { gaApiString =>
Ok(gaApiString)
}
}
如果gaApiString
实际上是List[String]
,那么这取决于你想对它做什么。将它显示为逗号分隔的列表,你可以将其更改为Ok(gaApiString.mkString(","))
。这里的关键是映射Future
,以便在值完成后对其进行操作。