有没有办法在守卫内等待未来的执行?
不在case
块内或块外Try
:
import scala.util.Try
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
object Main extends App {
val f = Future {
Thread.sleep(999999)
true
}
Try (1) match {
case x if f => println("Waited for future") // Here
case _ => println(":(")
}
}
感谢您的关注
有办法,但自己等待未来是一种反模式。他在这里:
请注意,由于
Thread.sleep(999999)
.这是一种更犹太的方式:
只有在你的例子中,我会
ExecutionContext
用我自己的替换默认的。因为默认的不等待未来的结果。