當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。