有没有办法等待在保护区内完成未来f
?
不在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(":(")
}
}
答案 0 :(得分:1)
您将需要这些额外的导入:
import scala.concurrent.duration._
import scala.concurrent.Await
你可以这样做:
case x if Try(Await.ready(f, 2 minutes)).isSuccess => println("Future completed")