0
我是Scala和Play Framework的新手,所以我不太清楚什么是错的。我正在尝试解压由Slick DB控制器(Play Framework)提供的Future [Option [MyType]]。 MyType在代码中称为BoundingBox:在Scala中解包未来[Option [MyType]]
def getBoundingBoxByFileName(name: String) = {
val selectByName = boundingBoxTableQuery.filter{ boundingBoxTable =>
boundingBoxTable.name === name
}
db.run(selectByName.result.headOption)
}
BoundingBox类型有一个名为product_name的字段。要获得这个领域我做到以下几点:
val boundingBoxFutOpt = BoundingBoxQueryActions.getBoundingBoxByFileName("some_file")
val res = for {
optBb : Option[db.BoundingBox] <- boundingBoxFutOpt
} yield{
for(bb : db.BoundingBox <- optBb) yield {
println(s"${bb.product_name}")
}
}
此代码不会对输出产生任何东西,但我没有编译错误。如果我为某些随机文本(不使用bb引用)更改println语句,则它也不会打印在控制台上。对我来说,似乎println语句永远不会被执行。
我会欣赏这个问题的一些方向。
非常感谢!这个伎俩 – Ivan