我目前正在努力与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。 –