Я хочу подтвердить свое понимание обещания в Scala. Учитывая приведенный ниже код:
val promise = Promise[Option[Boolean]]
foo().value.onComplete {
case Failure(exception) => promise.success(None)
case Success(value) =>
value match {
case Left(a) => promise.success(None)
case Right(b) => promise.success(Some(b))
}
}
promise.future
Будет ли остановлен поток, выполняющий этот оператор, до тех пор, пока не завершится foo
, или он сразу же продолжит выполнение и не будет ожидать обратного вызова?