我有一个从数据库检索数据并返回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))