我有一個項目階與http4s 0.15.16a和光滑3.2.1下列步驟操作:Await.result上HttpService的
- 通過REST調用接收一個ID
- 通過ID來MySlickDAO與響應一個未來
- 呼叫Await.result(RES,Duration.Inf)在未來返回由MySlickDAO
- 創建JSON
的問題是,我使用的是Await.re這是不好的做法 有沒有更好的解決方案?
下面的代碼:
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 ....
}
爲什麼要做'未來'封鎖? – cchantep
@cchantep我等待未來完成 – gekomad
爲什麼?這不是通常使用'Future'(這是如此失去所有興趣)的方式 – cchantep