【发布时间】:2016-01-03 02:22:02
【问题描述】:
我喜欢 scala 的类型安全性,但我一直遇到的一个运行时错误是
Future.filter predicate is not satisfied
我知道为什么会收到此错误,只是在寻找有关如何最好地解决此错误并优雅地处理它的建议,或者我做错了?
val r: Future[play.api.mvc.Result] = for {
account <- accountServer.get(...)
if account.isConfirmed
orders <- orderService.get(account, ...)
} yield {
...
}
如果账号没有被确认,就会出现上述错误。
我会认为,由于过滤器有可能失败,因此 scala 会将收益率返回值设为选项。没有?
【问题讨论】:
-
如果将结果类型声明为
Result,它如何返回选项? -
recoverFuture会产生有意义的错误。r不应该是Future[Result]吗? -
@m-z 是的,我把它改成了未来,谢谢。
标签: scala playframework future