2017-05-02 9 views
0

Scala Futuresに問題があります。 x:Future [Int]とy:Future [Int]という2つのパラメータを取る関数があります。スカラ先物の例外処理

関数がで完了未来を返す必要があります。xの

  • 値、yの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 
     } 
    } 
} 

答えて

3

x.recoverWith { case _ => y } 
+0

おかげで、ちょうど私が必要なもの! – pythoner

+0

助けてくれてうれしいです。答えとして受け入れてください:) –