Ich bekomme einen Typenkonflikt Fehler und ich kann nicht herausfinden, warum.Für Verständnis und Futures hat einen Typ nicht übereinstimmen
found: scala.concurrent.Future[UserSales]
required: Option[UserSales]
userSalesOpt <- getOrSetUserSales(userSalesCacheKey)
I have tried creating another for {} clause but that didn't solve the issue. What should I be doing as I am stuck??
Hier sind die Methoden, die ich bin mit:
UserDAO
def getByUsername(name: String): Future[Option[User]]
UserController:
def getOrSetUserSales(key: String): Future[Option[UserSales]]
class UserController ... {
def index = Action.asyc {
val maybeUserSalesOpt: Future[Option[UserSales]] = for {
userOpt <- userDao.getByUsername(name)
} yield {
for {
user <- userOpt
userSalesCacheKey = name + "whatever"
userSalesOpt <- getOrSetUserSales(userSalesCacheKey)
} yield {
for {
userSales <- userSalesOpt
} yield userSales
}
}
for {
maybeUserSales <- maybeUserSalesOpt
} yield {
if(maybeUserSales.isDefined) {
Ok("found")
} else {
Ok("error")
}
}
}
}
Aber mein Rückgabetyp ist Future [Option [UserSales]]? – Blankman
In der 'for {user <- userOpt ...' Schleife beginnen Sie mit einer Option (userOpt) und Sie geben ein Future zurück (das von 'getOrSetUserSales()' kommt). Das beschwert sich der Compiler. – marios