Упражнение 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.")
}
}
}