作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能告诉我 tryComplete
函数中的参数指的是什么?
def any[T](fs: List[Future[T]]): Future[T] = {
val p = Promise[T]()
fs foreach (x => x.onComplete(p.tryComplete(_)))
p.future
}
我知道这里的下划线是 Try[T]
类型。这个 Try[T]
从哪里来?
最佳答案
让我们从头开始。由于 fs
是一个 List[Future[T]]
,因此您知道 x
是一个 Future[T]
。
您需要注册一个回调,该回调将在 x
的结果可用时触发。实现此目的的简单方法是使用 onComplete
,它采用 Try[T] => U
类型的函数。
所以下划线是一个Try[T]
,它保存x
的结果,即Future[T]
。 Future
有两种可能的结果:Success[T]
,当 Future[T]
工作并保存结果时, >Failure[T]
,由于 Future[T]
不起作用而引发异常。
因此,Try
与 Option
类似,是一种安全表示结果的方法。
希望有帮助。
关于scala - Promise.tryComplete中的参数指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20278633/
谁能告诉我 tryComplete 函数中的参数指的是什么? def any[T](fs: List[Future[T]]): Future[T] = { val p = Promise[T](
本文整理了Java中org.apache.hadoop.hbase.client.ZKAsyncRegistry.tryComplete()方法的一些代码示例,展示了ZKAsyncRegistry.t
我是一名优秀的程序员,十分优秀!