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

How to check if a None exists in a List of Future[Option]

假设我们有:

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

如果所有元素都具有 Some(Person)false 如果至少有一个是 None?

Future.sequence(listOfYetToBeMaybePeople).map(!_.exists(_.isEmpty)) 

试试这个:

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

解释:

  • sequenceFuture 中的 List 转换为列表
  • 的未来
  • forall 检查列表所有元素的谓词
  • nonEmpty 检查 Option 是否实际上是 Some.

Returns 如果所有人都存在,true 的未来。