У меня есть функция ниже.
def get(id: Int): Future[Either[String, Item]] = {
request(RequestBuilding.Get(s"/log/$id")).flatMap { response =>
response.status match {
case OK => Unmarshal(response.entity).to[Item].map(Right(_))
case BadRequest => Future.successful(Left(s"Bad Request"))
case _ => Unmarshal(response.entity).to[String].flatMap { entity =>
val error = s"Request failed with status code ${response.status} and entity $entity"
Future.failed(new IOException(error))
}
}
}
}
Я пытаюсь вызвать эту функцию, но не знаю, как узнать, возвращает ли она строку или элемент. Ниже моя неудачная попытка.
Client.get(1).onComplete { result =>
result match {
case Left(msg) => println(msg)
case Right(item) => // Do something
}
}