光滑的未来返回空

Slick Future Returning Empty

我是 运行 一个灵活的查询,并使用此辅助方法成功获得结果:

  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)

我得到的结果是空的。我错过了什么?

如果你想打印结果,你应该把打印结果放在 onComplete 里面,就像文档说的那样:

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

在那个函数之外你无法访问结果,因为里面的代码后来异步运行,你应该使用 mapsreduces 和其他东西来处理结果,并且始终使用 Futures.