我有一个接受字符串参数def externalServerError(response: String)
的函数,我无法发送我的Future [String]参数
我试图将函数更改为def externalServerError(response: Future[String])
,但它给出了一个错误,因为在内部,我使用了库ServerErrorRequestException
中的类,该类期望Option [String]。这是完整的代码:
def externalServerError(response: String): ErrorInfo = {
val apiException = ServerErrorRequestException(
message = Some(response)
)
apiExceptionToErrorInfo(apiException)
}
}
答案 0 :(得分:1)
您可以完全切换到async
:
def externalServerError(response: Future[String]): Future[ErrorInfo] = {
response.map(str =>
apiExceptionToErrorInfo(
ServerErrorRequestException(
message = Some(str)
)
)
)
}
}
或使用Await(认为样式不好!)
def externalServerError(response: Future[String]): Future[ErrorInfo] = {
val str = Await.result(response, 1.second)
apiExceptionToErrorInfo(
ServerErrorRequestException(
message = Some(str)
)
)
}
}