是否有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
}
Run Code Online (Sandbox Code Playgroud)
在完成之前丢弃第二个未来?
Future.firstCompletedOf(...) 就是这样.
对于你想要做的事情:
def Comb[A](f1: Future[A], f2: Future[A]): Future[A] =
Future.firstCompletedOf(Seq(f1, f2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |