我目前正在努力與scala未來回調的邏輯。 我試圖讓這應該做的方法如下:將期權和回調變爲價值變量
- 與x值完成對如果x與失敗的異常成功完成
- 完成與值y如果x失敗,終於
- 完成對y如果x和y失敗。
這裏是我的代碼,因爲某些原因無法正常工作:
def eitherF(x: Future[Int], y: Future[Int]): Future[Int] = {
var ret : Future[Int] = x
ret onComplete {
case Success(i) =>
case Failure(t) => ret = ret.flatMap(e => y)
}
ret
}
當RET返回它總是有x的值,它就像塊的onComplete被完全忽略。 如何根據從x和y得到的結果修改ret的值?
是否要返回異常或拋出異常? –
在案例3中,我想返回導致異常的相同Future。 –