Spec-Zone.ru › Scala 3.1

Объект scala.concurrent.Future

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

объект Future

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

Супертипы
класс Object
тракт Matchable
класс Any
Тип самого себя
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 Futures для поиска

p

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

Возвращает

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

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

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

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

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

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

коллекция IterableOnce Futures, в которой нужно найти первое завершенное

Возвращает

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)(_ + _)
Параметры типа
R

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

T

тип значения входных Futures

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

коллекция scala.collection.immutable.Iterable Futures, которые нужно свернуть

op

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

zero

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

T

тип значения входных Futures

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

коллекция scala.collection.immutable.Iterable Futures для сокращения

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.1.1/scala/concurrent/Future$.html

Spec-Zone.ru

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