【发布时间】:2015-10-05 16:09:28
【问题描述】:
我正在努力实现这样的目标。
val x: SomeType = ...
val future: Future[SomeType] = Future {
/*
* Do some operation on x
*/
x
}
future onComplete {
case Success (x): x.status = "Success";
case Failure (t):
/*
* Here I want to write x.status = "Failed", But
* x is not available in this scope
*/
}
实现这一目标的有效方法是什么?
【问题讨论】:
-
'case Failure' 意味着您的代码(在 'Future{...}' 内)已引发异常,因此无法让 x 因为它没有返回(即使您使用正常方式,如 fallBackTo、recover、recoverWith)。无论如何,我不建议在这里使用可变数据。没有这个可以解决你的问题。
标签: scala