说我们有:
val listOfYetToBeMaybePeople = List[Future[Option[Person]]]
如果至少有一个元素Future[Boolean]
,如果所有元素都有true
或Some(Person)
,是否有false
None
export default function() {
return [
{
"name": "Michael Smith",
"age": 40,
"location": "New York",
"salary": 80000
}
]
}
的非阻塞方式?
答案 0 :(得分:4)
试试这个:
val listOfYetToBeMaybePeople: List[Future[Option[Person]]] =
val allExist: Future[Boolean] =
Future.sequence(listOfYetToBeMaybePeople).map(_.forall(_.nonEmpty))
说明:
sequence
将List
的{{1}}转换为列表的未来Future
检查列表中所有元素的谓词forall
会检查nonEmpty
是否真的是Option
。如果所有人都存在,则返回Some
的未来。
答案 1 :(得分:2)
Future.sequence(listOfYetToBeMaybePeople).map(!_.exists(_.isEmpty))