Рассмотрим следующее:
def f() :Unit = return 3
val x = f() //x: Unit = ()
Вы не можете вернуть значение из метода, который не возвращает значение, что и пытается сделать ваш код.
Посмотрите на сигнатуру типа onComplete()
.
abstract def onComplete(f: (Try[T]) ⇒ U)(executor: ExecutionContext): Unit
onComplete()
добавляет новый код в конец Future
, выполняющегося в отдельном потоке. Код, в конце концов, будет выполнен, но onComplete()
вернет вызывающей стороне Unit
(без полезного значения), поэтому ваши операторы return
не имеют смысла. (И плохой стиль Scala. Не используйте return
. Это может ввести вас в заблуждение.)