【发布时间】:2014-03-15 00:05:39
【问题描述】:
我有一个提供上下文的函数:
def buildContext(s:String)(request:RequestHeader):Future[Granite.Context] = {
.... // returns a Future[Granite.Context]
}
然后我有另一个函数,它使用上下文返回一个 Option[Library.Document]:
def getDocument(tag: String):Option[Library.Document] = {
val fakeRequest = play.api.test.FakeRequest().withHeaders(CONTENT_TYPE -> "application/json")
val context = buildContext(tag)(fakeRequest)
val maybeDoc = context.getDocument //getDocument is defined on Granite.Context to return an Option[Library.Document]
}
如果 Future 已返回,此代码将如何考虑?我曾经看到 for/yield 用于等待返回,但我一直认为 for/yield 只是将事物平面映射在一起,与等待 Futures 返回无关。我有点卡在这里,真的没有正确的问题要问!
【问题讨论】:
标签: scala