2
假設我有這樣的功能(我使用阿卡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)
}
'return failed future'block應該是什麼樣子?我是否需要一個執行上下文來實現它?