我需要用akka-http和reactivemongo編寫簡單的web服務。斯卡拉未來與akka-http
功能來保存數據看起來像這樣
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)
}
}
}
}
我需要未做與路線插入的ID返回結果,並做到這一點代碼線程等待。 如果嘗試
Database.saveRoute(route).onComplete{
case Success(r) => complete(r.toString)
case Failure(e) => complete(e.getMessage)
}
它不能編譯,因爲它沒有返回值。 我知道如何以骯髒的方式製作,但真的想要以適當的方式製作。
在這種情況下應該做什麼?
您可以使用'Promise'並將值放入'success'中。 – sebszyller