我有一个从数据库检索数据并返回Future [ResponseDTO]类型的函数,然后我需要将其转换为HttpResponse的Future

我的代码:

val responseDTO = database.getResponseDto(service) => Future[ResponseDTO]

responseDTO.onComplete {
   case Success(responseDTO) => HttpResponse(status = responseDTO.responseCode, entity = responseDTO.responsePayload)
   case Failure(exception) => HttpError("error")
}

它不会工作

也尝试过这个,仍然不起作用
responseDTO.map(
  dto => EitherT.pure[Future, HttpError](HttpResponse(status = dto.responseCode, entity = dto.responsePayload))
)

最佳答案

您想描绘 future 。 .onComplete方法不会改变 future ,只是添加一个处理程序(对副作用有用)

responseDTO.map(dto => HttpResponse(status=dto.responseCode, entity=dto.responsePayload))

10-06 06:12