scala - 如何检查 Future[Option] 列表中是否存在 None

标签 scala functional-programming future

假设我们有:

val listOfYetToBeMaybePeople = List[Future[Option[Person]]]

有没有一种非阻塞的方式来获得 Future[Boolean]true当且仅当所有元素都有 Some(Person)false如果至少有一个是 None

最佳答案

试试这个:

val listOfYetToBeMaybePeople: List[Future[Option[Person]]] = 
val allExist: Future[Boolean] = 
  Future.sequence(listOfYetToBeMaybePeople).map(_.forall(_.nonEmpty))

解释:

  • sequenceFutureList 转换为列表的 future
  • forall 检查列表中所有元素的谓词
  • nonEmpty 检查一个 Option 是否实际上是一个 Some

如果所有人都存在,则返回带有 true 的 future 。

关于scala - 如何检查 Future[Option] 列表中是否存在 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48891122/

相关文章:

scala.MatchError : [Ljava. lang.String; (类 [Ljava.lang.String;)

scala - 如何确定类型参数是否是 trait 的子类型?

math - 自由定理和参数化

scala - Actors 中 future 的执行上下文

scala - Akka有什么好办法等待一群Actors回应?

scala - SBT 无法解决构建定义中的依赖关系

scala - Haskell 序列的模拟

haskell - 如何推断 Scott 编码的 List 构造函数的类型?

functional-programming - 我找不到模块 'Html.App' elm v0.18

Java Multithreaded App - 如何动态取消 Futures 对象