把未來放在一起
前面的示例演示了 Future 的各個功能,處理成功和失敗案例。但是,通常情況下,兩個功能都處理得更為簡潔。這是一個用更整潔,更現實的方式編寫的例子:
object Calculator {
def calculateAndReport(a: Int, b: Int) = {
val eventualQuotient = FutureDivider divide(a, b)
eventualQuotient map {
quotient => println(s"Quotient: $quotient")
} recover {
case ex: ArithmeticException => println(s"It failed with: ${ex.getMessage}")
}
}
}