Объект scala.concurrent.Future
объект Future
Объект-компаньон для Future.
| Супертипы | |
|---|---|
| Тип самого себя |
Классы
Исходный код
Future, который никогда не завершается.
Конкретные методы
Исходный код
Запускает асинхронное вычисление и возвращает Future экземпляр с результатом этого вычисления.
Следующие выражения эквивалентны:
val f1 = Future(expr) val f2 = Future.unit.map(_ => expr) val f3 = Future.unit.transform(_ => Success(expr))
Результат становится доступным после завершения асинхронного вычисления.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
Исходный код
Запускает асинхронное вычисление и возвращает Future экземпляр с результатом вычисления после его завершения.
Следующие выражения семантически эквивалентны:
val f1 = Future(expr).flatten val f2 = Future.delegate(expr) val f3 = Future.unit.flatMap(_ => expr)
Результат становится доступным после завершения результирующего Future асинхронного вычисления.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
|
Исходный код
Создаёт уже завершённый Future с указанным исключением.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый созданный экземпляр |
Исходный код
Асинхронно и без блокировки возвращает Future, содержащий необязательный результат первого Future, результат которого соответствует предикату. Ошибочные Future будут проигнорированы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
Исходный код
final def firstCompletedOf[T](futures: IterableOnce[Future[T]])(implicit executor: ExecutionContext): Future[T]
Асинхронно и без блокировки возвращает новый Future к результату первого завершенного будущего в списке. Это означает, что независимо от того, завершилось ли оно успешно или с ошибкой.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
Исходный код
final def foldLeft[T, R](futures: Iterable[Future[T]])(zero: R)(op: (R, T) => R)(implicit executor: ExecutionContext): Future[R]
Асинхронное левостороннее свёртку (fold) над указанными будущими, начиная с заданного значения zero. Свёртка выполняется асинхронно слева направо по мере завершения будущих. Результатом будет первая ошибка любого из будущих, любая ошибка в самой свёртке или результат свёртки.
Пример:
val futureSum = Future.foldLeft(futures)(0)(_ + _)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
Исходный код
Создаёт уже завершенное Future со значением или исключением.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый созданный экземпляр |
Исходный код
final def reduceLeft[T, R >: T](futures: Iterable[Future[T]])(op: (R, T) => R)(implicit executor: ExecutionContext): Future[R]
Инициализирует асинхронное левостороннее сокращение (reduce) над предоставленными будущими, где значение zero — результат первого Future.
Пример:
val futureSum = Future.reduceLeft(futures)(_ + _)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
|
Исходный код
final def sequence[A, CC <: (IterableOnce), To](in: CC[Future[A]])(implicit bf: BuildFrom[CC[Future[A]], A, To], executor: ExecutionContext): Future[To]
Простая версия Future.traverse. Асинхронно и без блокировки преобразует, по сути, IterableOnce[Future[A]] в Future[IterableOnce[A]]. Полезно для сокращения множества Future в одно Future.
| Параметры типов |
|
|---|---|
| Параметры значений |
|
| Возвращает |
|
Исходный код
final def successful[T](result: T): Future[T]
Создает уже завершенный Future с указанным результатом.
| Параметры типов |
|
|---|---|
| Параметры значений |
|
| Возвращает | новый созданный экземпляр |
Исходный код
final def traverse[A, B, M <: (IterableOnce)](in: M[A])(fn: A => Future[B])(implicit bf: BuildFrom[M[A], B, M[B]], executor: ExecutionContext): Future[M[B]]
Асинхронно и без блокировки преобразует IterableOnce[A] в Future[IterableOnce[B]] с помощью предоставленной функции A => Future[B]. Это полезно для выполнения параллельной карты. Например, чтобы применить функцию ко всем элементам списка параллельно:
val myFutureList = Future.traverse(myList)(x => Future(myFunc(x)))
| Параметры типов |
|
|---|---|
| Параметры значений |
|
| Возвращает |
|
Конкретные поля
Исходный код
Future, который завершается со значением Unit.
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/concurrent/Future$.html