如何检查未来列表中是否存在无[选项]

时间:2018-02-20 17:36:04

标签: scala functional-programming future

说我们有:

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

如果至少有一个元素Future[Boolean],如果所有元素都有trueSome(Person),是否有false None export default function() { return [ { "name": "Michael Smith", "age": 40, "location": "New York", "salary": 80000 } ] } 的非阻塞方式?

2 个答案:

答案 0 :(得分:4)

试试这个:

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

说明:

  • sequenceList的{​​{1}}转换为列表的未来
  • Future检查列表中所有元素的谓词
  • forall会检查nonEmpty是否真的是Option

如果所有人都存在,则返回Some的未来。

答案 1 :(得分:2)

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