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