当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala Future.collect用法及代码示例


collect 方法(或属性)属于concurrent.Future特性(trait),其相关用法说明如下。

用法:

def collect[S](pf: PartialFunction[T, S])(implicit executor: ExecutionContext): Future[S]

如果给定的偏函数定义为该值,则通过映射当前未来的值来创建新的未来。

如果当前未来包含定义了偏函数的值,则新未来也将保留该值。否则,由此产生的未来将失败并出现 NoSuchElementException

如果当前的未来失败了,那么由此产生的未来也失败了。

例子:

val f = Future { -5 }
val g = f collect {
  case x if x < 0 => -x
}
val h = f collect {
  case x if x > 0 => x * 2
}
g foreach println // Eventually prints 5
Await.result(h, Duration.Zero) // throw a NoSuchElementException

类型参数:

S

返回的类型Future

值参数:

pf

PartialFunction 应用于此 Future 的成功结果

返回:

一个 Future 保存 PartialFunctionNoSuchElementException 的应用结果

源码:

Future.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 Future.collect。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。