【发布时间】:2015-12-20 14:16:19
【问题描述】:
我发现我遇到了以下模式分配,我无法让它工作或看起来不错的风格。
我有一个返回 Futures 的 for 理解,然后我构建模型以在视图中显示。但是在我的操作中返回结果之前,我有时必须使用 if 子句进行分支并可能加载更多数据。
下面的代码目前没有编译,你建议我怎么做才能使下面的代码遵循这种模式的正确样式?
它无法编译,因为 compr 的内部是返回 Future[Option[Something]] 但我已将 c 定义为 Option[Something]
for {
a <- fooService.getA()
b <- fooService.getB()
} yield {
var c: Option[Something] = None
if(a.size > 0) {
c = for {
c <- fooService.getC()
} yield {
Some(c)
}
}
}
val model = FooModel(a, b, c)
Ok(views.html.foo.show(model))
我的视图模型定义为:
FooModel(a: A, b: B, c: Option[Something])
【问题讨论】:
标签: scala playframework future