首页 文章

使用scala期货处理异常

提问于
浏览
0

我有Scala Futures的问题 . 我有一个带有两个参数的函数:x:Future [Int]和y:Future [Int] .

该函数应该返回一个完成的未来:

如果x成功完成,

  • x的值,
    如果x失败并且y成功完成,则

  • y的值,

  • 如果x失败且y失败则失败的异常 .

我似乎无法弄清楚如何做到这一点 .

目前的代码:

def myFunction(x: Future[Int], y: Future[Int]): Future[Int] = {
  x.onSuccess {
    case result => return Future(result)
  }
  x.onFailure {
    case e => 
      y.onSuccess {
        case res => return Future(res)
      }
      y.onFailure {
        case f => throw f
      }
  }
}

1 回答

  • 3

    只是:

    x.recoverWith { case _ => y }
    

相关问题