1
型の不一致のエラーが発生しましたが、その理由を理解できないようです。理解のため、先物に型不一致があります
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??
は、ここで私が使用していた方法です:
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")
}
}
}
}
しかし、私の返品タイプは、将来の[オプション[UserSales]]ですか? – Blankman
'for {user < - userOpt ...'ループではOption(userOpt)で始まり、(getOrSetUserSales()から来る)Futureを返します。それはコンパイラが不平を言っていることです。 – marios