Spec-Zone.ru › Scala 3.2

Объект Future.Future

Класс-компаньон • Исходный код

объект Future

Объект-компаньон для Future.

Супертипы
класс Object
тракт Matchable
класс Any
Тип self
Future.type

Классы-конструкторы

Исходный код
объект never extends Future[Nothing]

Future, который никогда не завершается.

Конкретные методы

Исходный код
final def apply[T](body: => T)(implicit executor: ExecutionContext): Future[T]

Запускает асинхронное вычисление и возвращает экземпляр Future с результатом этого вычисления.

Следующие выражения эквивалентны:

val f1 = Future(expr)
val f2 = Future.unit.map(_ => expr)
val f3 = Future.unit.transform(_ => Success(expr))

Результат становится доступным после завершения асинхронного вычисления.

Параметры типа
T

тип результата

Параметры значения
body

асинхронное вычисление

executor

контекст выполнения, в котором выполняется Future

Возвращает

экземпляр Future, содержащий результат вычисления

Исходный код
final def delegate[T](body: => Future[T])(implicit executor: ExecutionContext): Future[T]

Запускает асинхронное вычисление и возвращает экземпляр Future с результатом вычисления после его завершения.

Следующие выражения семантически эквивалентны:

val f1 = Future(expr).flatten
val f2 = Future.delegate(expr)
val f3 = Future.unit.flatMap(_ => expr)

Результат становится доступным после завершения результирующего Future асинхронного вычисления.

Параметры типа
T

тип результата

Параметры значения
body

асинхронное вычисление, возвращающее Future

executor

контекст выполнения, в котором вычисляется body

Возвращает

экземпляр Future, содержащий результат вычисления

Исходный код
final def failed[T](exception: Throwable): Future[T]

Создаёт уже завершённый Future с указанной исключительной ситуацией.

Параметры типа
T

тип значения в будущем

Параметры значения
исключение

непустой экземпляр Throwable

Возвращает

новый созданный экземпляр Future

Исходный код
final def find[T](futures: Iterable[Future[T]])(p: T => Boolean)(implicit executor: ExecutionContext): Future[Option[T]]

Асинхронно и без блокировки возвращает Future, который будет содержать необязательный результат первого Future с результатом, соответствующим предикату; провалы Future будут игнорироваться.

Параметры типа
T

тип значения в будущем

Параметры значения
futures

scala.collection.immutable.Iterable будущих значений для поиска

p

предикат, указывающий, является ли это совпадением

Возвращает

Future, содержащий необязательный результат поиска

Исходный код
final def firstCompletedOf[T](futures: IterableOnce[Future[T]])(implicit executor: ExecutionContext): Future[T]

Асинхронно и без блокировки возвращает новый Future к результату первого завершенного будущего в списке. Это означает, что независимо от того, завершилось ли оно успешно или с ошибкой.

Параметры типа
T

тип значения в будущем

Параметры значения
futures

IterableOnce будущих значений, в котором нужно найти первое завершенное

Возвращает

Future, содержащий результат будущего, которое первым завершилось

Исходный код
final def foldLeft[T, R](futures: Iterable[Future[T]])(zero: R)(op: (R, T) => R)(implicit executor: ExecutionContext): Future[R]

Неблокирующее, асинхронное левое свёртку над указанными будущими значениями, со начальным значением заданным zero. Свёртка выполняется асинхронно слева направо по мере завершения будущих значений. Результатом будет первая ошибка любого из будущих значений, или любая ошибка в фактической свёртке, или результат свёртки.

Пример:

val futureSum = Future.foldLeft(futures)(0)(_ + _)
Параметры типа
R

тип значения возвращаемого Future

T

тип значения входных будущих значений

Параметры значения
futures

scala.collection.immutable.Iterable будущих значений для свёртки

op

операция свёртки, применяемая к zero и будущим значениям

zero

начальное значение свёртки

Возвращает

Future содержащий результат свёртки

Исходный код
final def fromTry[T](result: Try[T]): Future[T]

Создаёт уже завершенное будущее с указанным результатом или исключением.

Параметры типа
T

тип значения в Future

Параметры значения
result

результат возвращаемого экземпляра Future

Возвращает

новый созданный экземпляр Future

Исходный код
final def reduceLeft[T, R >: T](futures: Iterable[Future[T]])(op: (R, T) => R)(implicit executor: ExecutionContext): Future[R]

Инициирует неблокирующую, асинхронную левую редукцию над предоставленными будущими значениями, где ноль — это значение результата первого Future

Пример:

val futureSum = Future.reduceLeft(futures)(_ + _)
Параметры типа
R

тип значения возвращаемого Future

T

тип значения входных будущих значений

Параметры значения
futures

scala.collection.immutable.Iterable будущих значений для редукции

op

операция редукции, которая применяется к результатам будущих значений

Возвращает

Future содержащий результат редукции

Исходный код
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.

Параметры типов
A

тип значения внутри Future

CC

тип IterableOnce Future

To

тип результирующего набора

Параметры значений
in

IterableOnce Future, которые будут упорядочены

Возвращает

Future результирующего набора

Исходный код
final def successful[T](result: T): Future[T]

Создает уже завершенный Future с указанным результатом.

Параметры типов
T

тип значения в Future

Параметры значений
result

заданное успешное значение

Возвращает

новый созданный экземпляр 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)))
Параметры типов
A

тип значения внутри Futures в наборе

B

тип значения возвращаемого Future

M

тип набора Futures

Параметры значений
fn

функция, которая применяется к набору для создания набора Futures

in

набор, над которым применяется предоставленная функция для создания набора Futures, который затем упорядочивается в набор Future

Возвращает

Future набора результатов

Конкретные поля

Исходный код
final val unit: Future[Unit]

Future, который завершается со значением Unit.

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/concurrent/Future$.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API