Spec-Zone.ru › Scala 3.1

Объект scala.jdk.javaapi.FutureConverters

Исходный код

объект FutureConverters

Этот объект содержит методы, которые преобразуют между Scala scala.concurrent.Future и Java java.util.concurrent.CompletionStage.

Явные методы преобразования, определённые здесь, предназначены для использования в Java-коде. Для Scala-кода рекомендуется использовать методы расширения, определённые в scala.jdk.FutureConverters.

Обратите внимание, что мост реализован на стороне только для чтения асинхронных обработчиков, а именно scala.concurrent.Future (вместо scala.concurrent.Promise) и java.util.concurrent.CompletionStage (вместо java.util.concurrent.CompletableFuture). Это сделано намеренно, так как семантика моста для обработчиков записи может привести к проблемам гонок; если оба конца (CompletableFuture и Promise) завершаются независимо в одно и то же время, они могут содержать разные значения впоследствии. По этой причине toCompletableFuture не поддерживается для созданных CompletionStage.

Надтипы
класс Object
тракт Matchable
класс Any
Тип «self»
FutureConverters.type

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

Исходный код
def asJava[T](f: Future[T]): CompletionStage[T]

Возвращает java.util.concurrent.CompletionStage, который будет завершён тем же значением или исключением, что и заданный Scala scala.concurrent.Future, когда тот завершится. Поскольку Future представляет собой только для чтения, этот CompletionStage не поддерживает метод toCompletableFuture.

Семантика Scala Future требует, чтобы все колбэки вызывались асинхронно по умолчанию, поэтому возвращаемый CompletionStage перенаправляет все вызовы синхронных преобразований на их асинхронные аналоги, т. е. thenRun внутренне вызовет thenRunAsync.

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

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

Возвращает

CompletionStage, который выполняет все колбэки асинхронно и не поддерживает интерфейс CompletableFuture

Исходный код
def asScala[T](cs: CompletionStage[T]): Future[T]

Возвращает Scala scala.concurrent.Future, который будет завершён тем же значением или исключением, что и заданный java.util.concurrent.CompletionStage, когда тот завершится. Преобразования возвращаемого Future выполняются асинхронно, как указано в ExecutionContext, который передаётся методам комбинаторов.

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

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

Возвращает

Scala Future, представляющий завершение CompletionStage

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/jdk/javaapi/FutureConverters$.html

Spec-Zone.ru

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