我有一个带有 http4s 0.15.16a 和 slick 3.2.1 的 scala 项目,步骤如下:
- 通过 rest call 接收 ID
- 将 ID 传递给以 Future 响应的 MySlickDAO
- 在 MySlickDAO 返回的 Future 上调用 Await.result(res, Duration.Inf)
- 创建 json
问题是我使用了 Await.result ,这是不好的做法,有更好的解决方案吗?
这里的代码:
val service = HttpService {
//http://localhost:8080/rest/id/9008E75A-F112-396B-E050-A8C08D26075F
case GET -> Root / "rest" / "id" / id =>
val res = MySlickDAO.load(id)
Await.result(res, Duration.Inf)
val ll = res.value.get.get
ll match {
case Failure(x) =>
InternalServerError(x)
case Success(record) =>
val r = record.map(x => MyEntity(x._1, x._2, x._3))
jsonOK(r.asJson)
}
case ....
}