如果我有電子郵件,我想要通過電子郵件獲取用戶(如果存在)。如果它不存在,我想插入並返回用戶。如果存在,則返回用戶,否則如果存在電子郵件地址選項,則插入
val userOptFut: Future[Option[User] = emailOpt.map { email =>
userDao.getByEmail(email).map { maybeUserFut =>
maybeUserFut match {
case Some(u) => Future.successful(Some(u))
case None =>
userDao.insert(User(....)) // Future[User]
}
}
}.getOrElse(Future.successful(None))
凡userDao.getByEmail(..)
返回Future[Option[User]]
我不知道什麼是錯的,但由於某些原因,它說我返回Object
,而不是用戶。
類型未來的表達[對象]不符合預期 類型未來[選項[用戶]]
什麼錯以上?
'getOrElse(無)'?所以如果獲得失敗,你會返回'None'?這不符合類型'未來[選項[用戶]]'(我懷疑如果獲得成功,它也不符合)。 – jwvh
@jwvh我更新了我的Q更新,現在它說Future [對象] – Blankman