如何将未来[字符串]转换为字符串scala?



我有一个函数,它接受一个字符串参数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)
)
)
} 
}

最新更新