【发布时间】:2012-06-28 15:19:16
【问题描述】:
假设我有这样的功能(我用的是akka 2.0.2):
def foo(message: String): Future[SomeClass] =
for {
result <- actor ? message
} yield SomeClass(result)
函数的调用者将onSuccess 和onFailure 设置为future 挂钩,所以如果我想让演员违背承诺,我让它将akka.actor.Status.Failure 发送回发送者。这工作得很好。现在,如果我想检查foo 中的某些条件并在条件失败/成功的情况下返回失败的未来怎么办?
def foo(message: String): Future[SomeClass] =
if(...) {
...//return failed future
} else {
for {
result <- actor ? message
} yield SomeClass(result)
}
“返回失败的未来”块应该是什么样的?我需要一个执行上下文来实现它吗?
【问题讨论】: