【发布时间】:2015-08-13 19:38:15
【问题描述】:
我有这些数据:
val _2BeFlat: Future[Option[Future[List[Long]]]] = ...
我需要:
val flat: Future[Option[List[Long]]] = ...
有办法吗?
【问题讨论】:
我有这些数据:
val _2BeFlat: Future[Option[Future[List[Long]]]] = ...
我需要:
val flat: Future[Option[List[Long]]] = ...
有办法吗?
【问题讨论】:
这应该可以解决问题:
val _2BeFlat: Future[Option[Future[List[Long]]]] = _
val flat: Future[Option[List[Long]]] = _2BeFlat.flatMap {
_ match {
case None => Future.successful(None)
case Some(future) => future.map(Some(_))
}
}
【讨论】:
case Some(future) => 行替换为case Some(future) => future.map(ls => Some(ls.flatMap(_.toList)))