我有一个函数,它接受一个字符串参数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)
}
}
您可以完全切换到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)
)
)
}
}