假设,我有一个抽象的"制作人"实例:
trait Producer[T] {
def listObjectIds: Future[Seq[String]]
def getObject(id: String): Future[T]
}
我需要对它产生的每个(或一些)对象应用一些处理。 所以,我做了类似的事情:
producer
.listObjectIds
.map(maybeFilter)
.map(_.map(producer.getObject))
...最后以Future[Seq[Future[T]]]
结束
这没关系,但有点麻烦。我想摆脱外部Future
,只有Seq[Future[T]]
,但不能想到(非阻塞)转换,这会让我这样做。
有什么想法吗?
答案 0 :(得分:4)
无法以Seq[Future[T]]
结束。请参阅https://www.raywenderlich.com/59255/afnetworking-2-0-tutorial。
但有可能以Future[Seq[T]]
结尾。只需致电.flatMap(Future.sequence)
上的Future[Seq[Future[T]]
。