【发布时间】:2015-03-16 00:41:03
【问题描述】:
上下文:我有一个函数,我想在开始时检查某个 Promise a) 已经完成并且 b) 具有某个值。
有一个方法可以检查 Scala(从 2.11.5 开始)中的 Promise 是否已经完成,即isCompleted。然而,当你想获得已经完成的 Promise 的值时,看起来你必须像这样编写一个令人不快的链:
val p = Promise[Boolean]
val result = p.future.value.get.toOption.get
(为了完整性:我正在考虑写一些类似的东西:
if (p.isCompleted && p.future.value.get.toOption.get == true)
但对代码的丑陋感到震惊:))
没有更好的方法吗?或者这是否表明我没有按照预期的方式使用它?
【问题讨论】:
标签: scala concurrency promise