list - 在 Scala 中检查 future 列表的大小

标签 list scala future

我有一个返回 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 是否发生。您可以使用 mapFuture[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/

相关文章:

C# - 如何获得两个没有标识符的列表的补充

java - 如何从 Scala 调用 Java 接口(interface)的 T eq(Object) 方法?

string - Spark Scala 进行部分字符串计数的最有效方法

scala - 为什么我的Scala future 无法传播错误?

python - 我怎么知道所有的 Futures 都在 Tornado 中解决了?

scala - 对 future 作出 react

python - 转换为以行作为列表的普通数据框。将行拆分为列

Python 创建一个程序来执行和分析类(class)的最终成绩

java - 有没有办法获取 JList 中的所有元素?

java - 从 Java 使用 Scala 的 Either, Right 和 Left