Я пытаюсь обойти Scala обещание и будущие конструкции.
Я читал Фьючерсы и Promises в документации Scala и немного смущен, поскольку у меня возникает ощущение, что понятия promises и фьючерсы смешиваются.
В моем понимании обещание - это контейнер, который мы могли бы заполнить значение в более поздней точке. И будущее - это нечто вроде асинхронного который завершится в другом пути выполнения.
В Scala мы можем получить результат, используя присоединенные обратные вызовы к будущему.
Где я потерял, как обещание имеет будущее?
Я читал об этих понятиях в Clojure тоже, полагая, что обещание и будущее имеют общую общую концепцию, но похоже, что я был неправ.
Обещание p завершает будущее, возвращаемое p.future. Это будущее конкретно к обещанию. В зависимости от реализации это может быть случай, когда p.future eq p.
val p = promise[T]
val f = p.future