Упражнение для forComprehension , не компилируется, так как возвращает Unit вместо Future [User]
(задача - читать с помощью DAO и создавать нового пользователя с помощью 2 родителей)
Я пытаюсь вернуть Future [User] из onComplete, но терпит неудачу (возвращает Unit).
def unbornUsingForComp(fatherId: String, motherId: String): Future[User] = {
val fatherUser: Future[Option[User]] = usersDao.read(fatherId)
val motherUser: Future[Option[User]] = usersDao.read(motherId)
val combinedLastName = for {
r1 <- fatherUser
r2 <- motherUser
} yield (r1, r2)
combinedLastName.onComplete {
case Success(x) => {
(x._1, x._2) match {
case (Some(u1), Some(u2)) => usersDao.create(User("JustRandomId", "JustRandomFirstName", u1.lastName + " - " +u2.lastName))
case _ => throw new Exception("One or more of the parents not Found")
}
}
case Failure(_) => {
throw new Exception("Exception raised inside the for comp.")
}
}
}