是否有scala组合器用于组合两个期货如下
val Comb[A]: (Future[A], Future[A]) => Future[A] =
(f1: Future[A], f2: Future[A]) => Future {
if f1 succeeds before f2 then f1
else f2
}
在完成之前丢弃第二个未来?
答案 0 :(得分:5)
Future.firstCompletedOf(...)
就是这样做的。
对于你想要做的事情:
def Comb[A](f1: Future[A], f2: Future[A]): Future[A] =
Future.firstCompletedOf(Seq(f1, f2))