【发布时间】:2019-08-09 15:19:10
【问题描述】:
我有一个从 getProductSettingsMethod 返回的 Future [ProductSettings]。现在我需要 clearCanLoad 字段中的真假
def getEmployerProductSettingsQuery(employer: Employer): DBIOAction[ProductSettings, NoStream, Effect.Read] = {
val productSettingsQ = productSettingsQuery.filter(_.employerId === employer.id).result
productSettingsQ.map(_.headOrServerException(s"Could not find ProductSettings for employer ${employer.id}"))
}
def getEmployerProductSettings(employer: Employer): Future[ProductSettings] =
db.run(getEmployerProductSettingsQuery(employer))
我尝试了 .map、filter、flatMap 等,但都没有工作
def cleared (employer : Employer) :Boolean = {
val f : Future[ProductSettings] =
getEmployerProductSettings(employer)
val iscleared: Boolean = f.filter { x =>
x.clearedCanLoadSpenditCards match {
case true =>
true
case false =>
false
}
}
}
这不起作用也不起作用是过滤器
val f : Future[ProductSettings] = getEmployerProductSettings(employer)
val iscleared = f .
.filter(_.clearedCanLoadSpenditCards.equals(true)).equals(true)
case class ProductSettings(id: Long,
employerId: Long,
enableCard: Boolean,
enableLt: Boolean,
enableLtRefundDays: Boolean,
enableLtConversion: Boolean,
enableLtOPayment: Boolean,
clearedCanLoad: Boolean,
clearedAt:Option[LocalDateTime]) {
equals true 应该返回布尔值,但我得到一个 Future[Boolean] 返回。我如何提取布尔值
【问题讨论】:
-
如果可能你应该返回
Future[Boolean]并将调用代码修改为mapFuture以访问其中的Boolean。 -
你能格式化你的代码吗?看书太难了
标签: scala dictionary filter