Promise.tryComplete中的参数是指什么?

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]是从哪里来的?

Vid*_*dya 5

让我们从头开始.既然fsList[Future[T]],你就知道xFuture[T].

您需要注册一个在结果x可用时将触发的回调.执行此操作的简单方法是使用onComplete类型函数Try[T] => U.

因此,下划线是Try[T],其持有的结果x,对Future[T].对于a ,有两种可能的结果Future:Success[T]Future[T]工作并保持结果时,Failure[T]由于Future[T]不起作用而保持异常.

所以Try类似于Option,一种安全地表示结果的方法.

希望有所帮助.