我有一个Promises
的集合。我一直在寻找一种有效的方法来组成结果Futures
。目前,我发现把它们结合在一起最彻底的方法是使用一个scalaz Monoid
,就像这样:如何撰写“期货”清单?
val promises = List(Promise[Unit], Promise[Unit], Promise[Unit])
promises.map(_.future).reduce(_ |+| _).onSuccess {
case a => println(a)
}
promises.foreach(_.success(()))
有没有干净的方式来做到这一点并不需要scalaz?
集合中Futures
的数量会有所不同,并且大量中间集合是不可取的。
你介意聚合'期货'而不是'承诺'吗? –
这就是我在这里做的,我用.map() –