光彩的未来返回空

时间:2018-06-29 16:55:07

标签: scala slick slick-3.0

我正在运行一个简洁的查询,并使用此辅助方法成功获得了结果:

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

我正在尝试实施无阻塞期货,per the Slick docs

  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 :(得分:1)

如果要打印结果,则应将打印内容放在onComplete内,就像文档说的那样:

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

在该函数之外,您无权访问结果,因为内部代码是异步运行的,因此您应该使用mapsreduces和其他东西来使结果起作用,并始终起作用与Futures