能否請你幫我把它寫在一個更好的方式:斯卡拉擺脫嵌套期貨
Future {
Thread sleep 200
5
} onComplete{
case Success(e) => Future {
doSomething(e)
Thread sleep 200
6
} onComplete {
case Success(e) =>
Future {
doSomething(e)
Thread sleep 200
} onComplete {
case Success(_) => println("finished")
case Failure(e) => e.printStackTrace()
}
case Failure(e) => e.printStackTrace()
}
case Failure(e) => e.printStackTrace()
}
現在的代碼很糟糕,如果我增加了更多的期貨這樣它會變得更糟...這顯然是一個顯示問題的例子,所以我希望提到更廣泛的背景。
@update如果不夠清楚,我會盡力澄清。我有三個期貨,並要執行第一,當它完成執行第二,當它完成 - 第三。第二個將來使用第一個的結果,第三個使用第二個的結果。如果其中一個期貨失敗,則打印堆棧跟蹤並調用序列中斷。這就是我想要的代碼,以顯示前面,我想如果可能的話,要實現它更好的,非嵌套的方式。
@Update 2這也將是巨大的,如果我會處理每一個未來的失敗分開
目前尚不清楚你想達到 – mfirry
好吧,我更新的問題 –