【发布时间】:2016-08-26 13:25:03
【问题描述】:
我需要用 akka-http 和 reactivemongo 编写简单的 web 服务。
保存数据的功能如下所示
def saveRoute(route: Route):Future[WriteResult] = {
collection.insert(route)
}
调用此函数的代码如下所示
val userRoutes = {
logRequestResult("akka-http-microservice") {
path("routes") {
(post & entity(as[Route])) { route =>
Database.saveRoute(route)
}
}
}
}
我需要使用插入的 Route ID 返回结果,并在不让线程等待的情况下执行此操作。 如果尝试
Database.saveRoute(route).onComplete{
case Success(r) => complete(r.toString)
case Failure(e) => complete(e.getMessage)
}
它无法编译,因为它不返回值。 我知道如何以肮脏的方式制作它,但我真的想以适当的方式制作。
这种情况应该怎么办?
【问题讨论】:
-
您可以使用
Promise并将值放入success。