如何使用 Future[StandardRoute] 完成请求

How to complete request with Future[StandardRoute]

我有简化后的代码,如下所示:

path("path")  {
  post {
    val routeFuture: Future[StandardRoute] = Future {
      //some app logic
      utilFunctionRoute()
    }

    ??? // complete the request
  }
}

有一次我有 Future[StandardRoute] 包含我的结果,但我不知道如何在不阻塞 Future 的情况下完成此请求。

在处理期货时可以使用onComplete来完成请求without blockingonComplete 接受未来,然后我们可以在 successfailure 上进行模式匹配以准备 Http 响应。

path("path")  {
  post {
    val routeFuture: Future[StandardRoute] = Future {
      utilFunctionRoute()
    }

    onComplete(routeFuture){
      case util.Success(f) =>
        complete(StatusCodes.OK)

      case util.Failure(ex) =>
        complete(StatusCodes.InternalServerError )
  }
}