Slick Future возвращается пустым - PullRequest
0 голосов
/ 29 июня 2018

Я выполняю скользкий запрос и успешно получаю результат с помощью этого вспомогательного метода:

  def exec[T](action: DBIO[T]): T = Await.result(db.run(action), 2.seconds)

Я пытаюсь реализовать неблокирующие фьючерсы, в соответствии с документами Slick :

  def execFuture[T](program: DBIO[T]) = db.run(program)

  val futureTest = execFuture ( maxInStockVal.result ).onComplete {
    case Success(x) => x
    case Failure(e) => e
  }
  Logger.debug(futureTest.toString)

Результат, который я получаю, пуст. Чего мне не хватает?

1 Ответ

0 голосов
/ 29 июня 2018

Если вы хотите напечатать результат, вы должны поместить отпечаток в onComplete, как в документации сказано:

f.onSuccess { case s => println(s"Result: $s") }

За пределами этой функции у вас нет доступа к результату, поскольку код внутри него выполняется асинхронно, вам нужно работать с maps, reduces и другими вещами, чтобы работать с результатами, и всегда работать с Фьючерсы .

...