【发布时间】:2018-07-29 03:31:12
【问题描述】:
我有两个案例类P(id: String, ...) 和Q(id: String, ...),以及两个返回期货的函数:
-
在给定 id-s 列表的情况下检索对象列表:
def retrieve(ids: Seq[String]): Future[Seq[P]] = Future { ... }如果没有找到所有 id-s,结果的长度可能会比输入短。
进一步将
P转换为其他类型Q:def transform(p: P): Future[Q] = Future { ... }
我最后想要的是,以下。给定ids: Seq[String],计算一个Future[Map[String, Option[Q]]]。
ids 中的每个id 都应该是映射中的一个键,当它被成功检索(即出现在retrieve 的结果中)并且也成功转换时,id -> Some(q) 应该是一个键。否则,地图应包含id -> None 或Empty。
我怎样才能做到这一点?
【问题讨论】:
标签: scala list dictionary optional future