yue*_*ngz 2 scala future promise
谁能告诉我参数在tryComplete函数中引用了什么?
def any[T](fs: List[Future[T]]): Future[T] = {
val p = Promise[T]()
fs foreach (x => x.onComplete(p.tryComplete(_)))
p.future
}
Run Code Online (Sandbox Code Playgroud)
我知道这里的下划线是类型的Try[T].这Try[T]是从哪里来的?
让我们从头开始.既然fs是List[Future[T]],你就知道x了Future[T].
您需要注册一个在结果x可用时将触发的回调.执行此操作的简单方法是使用onComplete类型函数Try[T] => U.
因此,下划线是Try[T],其持有的结果x,对Future[T].对于a ,有两种可能的结果Future:Success[T]当Future[T]工作并保持结果时,Failure[T]由于Future[T]不起作用而保持异常.
所以Try类似于Option,一种安全地表示结果的方法.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |