У меня есть код (функция getServiceBySid
возвращает Future[ServiceCategory]
):
var service: ServiceCategory =
Await.result((for {
optService <- getServiceBySid(serviceSid)
} yield {
optService
}) recover {
case e: Throwable =>
throw e
}, Duration(10, TimeUnit.SECONDS))
, и я не могу перестать думать, что этот код не в истинном стиле Scala. На самом деле он делает что-то вроде
val serviceCategory: ServiceCategory =
getServiceCategoryBySid(serviceCategorySid) onComplete {
case Success(value) => value
case Failure(e) => throw e
}
, но onComplete возвращает Unit
, поэтому он не работает. Как я могу изменить код?