我有一个返回 Future[List[Employee]]
的方法。我想出于各种目的检查列表大小。我无法在列表中调用 size
,我认为这是因为它在 Future
中。有什么建议吗?
val employees: Future[List[Employee]] = companyService.findEmployeesWorkingOn(someDate)
employees match {
case emp if(emp.size == 1) => Logger.info("Only one employee working")
case emp if(emp.size == 0) => Logger.info("No one working")
case _ => Logger.info("Multiple employees working")
}
最佳答案
你需要“等待” future 是否发生。您可以使用 map
将 Future[List[Employee]]
映射到 Future[Int]
并使用 onSuccess
回调。
val sizeFuture = employees.map(_.size) // returns a Future[Int]
sizeFuture onSuccess {
case size:Int => println(size) // do your stuff here
}
关于list - 在 Scala 中检查 future 列表的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948613/