在下面的代碼片段,方法bookExists
調用方法find
確定由指定ID標識的圖書是否存在:斯卡拉:如何等待未來
class BookStore {
def find(id: String): Future[Option[Book]] = {
// read from db
...
}
def bookExists(id: String): Boolean = {
find(id).map {
case Some(_) => true
case _ => false
}.recover {
case e => false
}
}
}
的問題是,上面沒有按班級」因爲我需要等到Future
實際完成纔可能編譯。我總是得到以下錯誤信息:
[error] /home/j3d/test/BookStore.scala:118: type mismatch;
[error] found : scala.concurrent.Future[Boolean]
[error] required: Boolean
[error] ).map {
[error] ^
什麼是正確的方法來處理這種情況?
爲什麼不''.map(_。nonEmpty)'? –