Объект scala.concurrent.Future.never
object never extends Future[Nothing]
Члены-значения
final def !=(arg0: Any): Boolean
Проверяет два объекта на неравенство.
- returns
trueif !(this == that), false otherwise.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением boxed числовых типов и null. Для чисел, он возвращает хэш-значение, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## будет производить одно и то же хэш-значение для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
- returns
хэш-значение, согласованное с ==
- Определяющие классы
- AnyRef → Any
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли принимаемый объект эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def andThen[U](pf: PartialFunction[Try[Nothing], U])(implicit executor: ExecutionContext): Future[Nothing]
Применяет функцию с побочными эффектами к результату этого future и возвращает новый future с результатом этого future.
Этот метод позволяет обеспечить выполнение обратных вызовов в указанном порядке.
Обратите внимание, что если один из связанных andThen обратных вызовов вызывает исключение, это исключение не распространяется на последующие andThen обратные вызовы. Вместо этого последующие andThen обратные вызовы получают исходное значение этого future.
Следующий пример выводит 5:
val f = Future { 5 }
f andThen {
case r => sys.error("runtime exception")
} andThen {
case Failure(t) => println(t)
case Success(v) => println(v)
}
Поскольку этот метод выполняется асинхронно и не возвращает значение, любые нефатальные исключения, которые будут выброшены, будут сообщены ExecutionContext.
- U
используется только для принятия любого типа возвращаемого значения данного
PartialFunction- pf
PartialFunction, который будет условно применен к результату этогоFuture- returns
Future, который будет завершен с точно таким же результатом, как и этотFuture, но после того, какPartialFunctionбыл выполнен.
final def asInstanceOf[T0]: T0
Преобразует принимаемый объект в тип T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания типов Scala. Поэтому выражение 1.asInstanceOf[String] вызовет ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, являются ли содержимые списка запрашиваемого типа.
- returns
принимаемый объект.
- Определяющие классы
- Any
- Выбрасываемые исключения
ClassCastExceptionесли принимаемый объект не является экземпляром стирания типаT0.
def clone(): AnyRef
Создает копию принимаемого объекта.
Реализация метода clone по умолчанию зависит от платформы.
- returns
копия принимаемого объекта.
def collect[S](pf: PartialFunction[Nothing, S])(implicit executor: ExecutionContext): Future[S]
Создает новый future, отображая значение текущего future, если данная частичная функция определена для этого значения.
Если текущий future содержит значение, для которого определена частичная функция, новый future также будет содержать это значение. В противном случае результирующий future завершится ошибкой с NoSuchElementException.
Если текущий future завершается ошибкой, то результирующий future также завершается ошибкой.
Пример:
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- returns
Future, содержащий результат примененияPartialFunctionилиNoSuchElementException
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и обладает тремя дополнительными свойствами:
-
Он согласован: для любых не-null экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить, что их поведение согласуется с равенством ссылок. Таким образом, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хэша (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def equals(arg0: Any): Boolean
Метод равенства для типов ссылок. По умолчанию делегирует вызов к eq.
Смотрите также equals в scala.Any.
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
def failed: Future[Throwable]
Возвращаемое значение Future будет успешно завершено с Throwable исходного Future в случае, если исходное Future завершилось неудачно.
Если исходное Future успешно завершено, возвращаемое Future завершается неудачно с NoSuchElementException.
Этот фьючер может содержать объект типа исключение, что означает неудачное завершение фьючера. Фьючеры, полученные через комбинаторы, содержат те же исключения, что и фьючер, из которого они получены. Нижеследующие объекты исключения не содержатся во фьючере:
Error - ошибки не содержатся во фьючерах
InterruptedException - не содержатся во фьючерахвсе scala.util.control.ControlThrowable кроме NonLocalReturnControl - не содержатся во фьючерах Вместо этого фьючер завершается с ExecutionException, причиной которого является одно из вышеперечисленных исключений. Если фьючер завершается неудачно с scala.runtime.NonLocalReturnControl, он завершается с значением из этого объекта исключения.
- returns
неудачное проектирование этого
Future.
def fallbackTo[U](that: Future[U]): Future[U]
Создает новый фьючер, который содержит результат этого фьючера, если он завершился успешно, или, если нет, результат фьючера that если that завершился успешно. Если оба фьючера завершились неудачно, результирующий фьючер содержит объект исключения первого фьючера.
Использование этого метода не приведет к недетерминированному поведению конкуретных программ.
Пример:
val f = Future { sys.error("failed") }
val g = Future { 5 }
val h = f fallbackTo g
h foreach println // Eventually prints 5
- U
тип другого
Futureи результирующегоFuture- that
фьючер
Future, результат которого мы хотим использовать, если этот фьючерFutureзавершится неудачно.- returns
фьючер
Futureс успешным результатом этого или that фьючераFutureили неудачей этого фьючераFutureесли оба завершились неудачно
def filter(p: (Nothing) ⇒ Boolean)(implicit executor: ExecutionContext): Future[Nothing]
Создает новый фьючер, отфильтровав значение текущего фьючера с помощью предиката.
Если текущий фьючер содержит значение, удовлетворяющее предикату, новый фьючер также будет содержать это значение. В противном случае результирующий фьючер завершится неудачно с NoSuchElementException.
Если текущий фьючер завершается неудачно, то результирующий фьючер также завершается неудачно.
Пример:
val f = Future { 5 }
val g = f filter { _ % 2 == 1 }
val h = f filter { _ % 2 == 0 }
g foreach println // Eventually prints 5
Await.result(h, Duration.Zero) // throw a NoSuchElementException
- p
предикат, который нужно применить к успешному результату этого
Future- returns
фьючер
Futureкоторый будет содержать успешный результат этогоFutureесли он соответствует предикату, илиNoSuchElementException
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.
Подробности о том, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- Note
не указано SLS как член AnyRef
def flatMap[S](f: (Nothing) ⇒ Future[S])(implicit executor: ExecutionContext): Future[S]
Создает новый фьючер, применяя функцию к успешному результату этого фьючера и возвращая результат функции как новый фьючер. Если этот фьючер завершается с исключением, то новый фьючер также будет содержать это исключение.
Пример:
val f = Future { 5 }
val g = Future { 3 }
val h = for {
x: Int <- f // returns Future(5)
y: Int <- g // returns Future(3)
} yield x + y
Переводится в:
f flatMap { (x: Int) => g map { (y: Int) => x + y } }
- S
тип возвращаемого
Future- f
функция, которая будет применена к успешному результату этого
Future- returns
фьючер
Futureкоторый будет завершен результатом применения функции
def flatten[S](implicit ev: <:<[Nothing, Future[S]]): Future[S]
Создаёт новую будущую задачу с одним уровнем вложенности, уплощенной. Этот метод эквивалентен flatMap(identity).
- S
тип возвращаемого
Future
def foreach[U](f: (Nothing) ⇒ U)(implicit executor: ExecutionContext): Unit
Асинхронно обрабатывает значение в будущем, как только оно станет доступным.
ВНИМАНИЕ: Не будет вызываться, если эта будущая задача никогда не завершится или если она завершится с ошибкой.
Поскольку этот метод выполняется асинхронно и не возвращает значение, любые некритические исключения будут сообщены ExecutionContext.
- U
используется только для принятия любого типа возвращаемого значения заданной функции обратного вызова
- f
функция, которая будет выполнена, если эта
Futureзавершится результатом, возвращаемое значениеfбудет проигнорировано.
final def getClass(): Class[_]
Возвращает представление класса времени выполнения объекта.
- returns
объект класса, соответствующий типу времени выполнения получателя.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- returns
значение хэш-кода для этого объекта.
def isCompleted: Boolean
Возвращает, завершилась ли будущая задача значением или исключением.
Примечание: использование этого метода приводит к недетерминированным программам потока данных.
- returns
trueесли будущая задача завершилась,falseв противном случае
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат теста зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, проверить, являются ли содержимое списка указанного типа, невозможно.
- returns
trueесли объект-получатель является экземпляром стираемого типаT0;falseв противном случае.
- Definition Classes
- Any
def map[S](f: (Nothing) ⇒ S)(implicit executor: ExecutionContext): Future[S]
Создаёт новую будущую задачу, применяя функцию к успешному результату этой будущей задачи. Если эта будущая задача завершится с исключением, то и новая будущая задача также будет содержать это исключение.
Пример:
val f = Future { "The future" }
val g = f map { x: String => x + " is now!" }
Обратите внимание, что for-понимание, включающее Future может расширяться, включая вызов map и/или flatMap и withFilter. См. scala.concurrent.Future#flatMap для примера такого понимания.
- S
тип возвращаемой
Future- f
функция, которая будет применена к успешному результату этой
Future- returns
будущая задача, которая завершится результатом применения функции
def mapTo[S](implicit tag: ClassTag[S]): Future[S]
Создаёт новую будущую задачу, которая завершится результатом этой Future, если он соответствует стёртому типу S, или ClassCastException в противном случае.
- S
тип возвращаемой
Future- tag
ClassTag, который будет использован для преобразования результата этойFuture- returns
будущая задача, содержащая преобразованный результат этой
FutureилиClassCastExceptionв противном случае
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- returns
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
final def notify(): Unit
Разбуждает один поток, ожидающий монитора объекта-приёмника.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS как член AnyRef
final def notifyAll(): Unit
Разбуждает все потоки, ожидающие монитора объекта-приёмника.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS как член AnyRef
def onComplete[U](f: (Try[Nothing]) ⇒ U)(implicit executor: ExecutionContext): Unit
При завершении этого будущего, либо из-за исключения, либо с значением, примените предоставленную функцию.
Если будущее уже завершено, это будет применено немедленно или запланировано асинхронно.
Обратите внимание, что возвращаемое значение f будет проигнорировано.
Поскольку этот метод выполняется асинхронно и не возвращает значения, любые некритические исключения будут сообщены ExecutionContext.
Могут быть зарегистрированы несколько обратных вызовов; нет гарантии, что они будут выполнены в определённом порядке.
Предоставленный обратный вызов всегда выполняется в предоставленном неявном ExecutionContext, хотя нет гарантии, что метод execute() на ExecutionContext будет вызываться один раз на каждый обратный вызов или что execute() будет вызван в текущем потоке. То есть реализация может запускать несколько обратных вызовов в пакетном режиме в рамках одного execute() и может запускать execute() немедленно или асинхронно. Завершение будущего должно *предшествовать* вызову обратного вызова.
- U
используется только для принятия любого возвращаемого типа предоставленной функции обратного вызова
- f
функция, которая будет выполнена при завершении этого
Future
def onFailure[U](pf: PartialFunction[Throwable, U])(implicit executor: ExecutionContext): Unit
При завершении этого будущего с ошибкой (т.е. с исключением), примените предоставленный обратный вызов к исключению.
Это будущее может содержать объект исключения, что означает, что будущее потерпело неудачу. Будущие, полученные через комбинаторы, имеют то же исключение, что и будущее, из которого они были получены. Следующие объекты исключений не содержатся в будущем:
Error - ошибки не содержатся в будущих
InterruptedException - не содержится в будущихвсе scala.util.control.ControlThrowable кроме NonLocalReturnControl - не содержится в будущихВместо этого будущее завершается с ExecutionException с одним из вышеперечисленных исключений в качестве причины. Если будущее завершается с scala.runtime.NonLocalReturnControl, оно завершается со значением из этого исключения.
Если будущее уже завершено с ошибкой, это будет применено немедленно или запланировано асинхронно.
Не будет вызываться в случае, если будущее завершено со значением.
Обратите внимание, что возвращаемое значение pf будет проигнорировано.
Поскольку этот метод выполняется асинхронно и не возвращает значения, любые некритические исключения будут сообщены ExecutionContext.
Могут быть зарегистрированы несколько обратных вызовов; нет гарантии, что они будут выполнены в определённом порядке.
Предоставленный обратный вызов всегда выполняется в предоставленном неявном ExecutionContext, хотя нет гарантии, что метод execute() на ExecutionContext будет вызываться один раз на каждый обратный вызов или что execute() будет вызван в текущем потоке. То есть реализация может запускать несколько обратных вызовов в пакетном режиме в рамках одного execute() и может запускать execute() немедленно или асинхронно. Завершение будущего должно *предшествовать* вызову обратного вызова.
def onSuccess[U](pf: PartialFunction[Nothing, U])(implicit executor: ExecutionContext): Unit
При успешном завершении этого будущего (т.е. со значением), примените предоставленную частичную функцию к значению, если частичная функция определена для этого значения.
Если будущее уже завершено со значением, это будет применено немедленно или запланировано асинхронно.
Обратите внимание, что возвращаемое значение pf будет проигнорировано.
Поскольку этот метод выполняется асинхронно и не возвращает значения, любые некритические исключения будут сообщены ExecutionContext.
Могут быть зарегистрированы несколько обратных вызовов; нет гарантии, что они будут выполнены в определённом порядке.
Предоставленный обратный вызов всегда выполняется в предоставленном неявном ExecutionContext, хотя нет гарантии, что метод execute() на ExecutionContext будет вызываться один раз на каждый обратный вызов или что execute() будет вызван в текущем потоке. То есть реализация может запускать несколько обратных вызовов в пакетном режиме в рамках одного execute() и может запускать execute() немедленно или асинхронно. Завершение будущего должно *предшествовать* вызову обратного вызова.
def ready(atMost: Duration)(implicit permit: CanAwait): never.this.type
Дождитесь состояния "completed" этого Awaitable.
Этот метод не следует вызывать напрямую; используйте Await.ready вместо него.
- atMost
максимальное время ожидания, которое может быть отрицательным (ожидание не выполняется), Duration.Inf для неограниченного ожидания или конечное положительное время
- returns
этот
Awaitable
- Definition Classes
- never → Awaitable
- Annotations
- @throws( clazz = classOf[TimeoutException] ) @throws( clazz = classOf[InterruptedException] )
- Исключения
-
IllegalArgumentException, еслиatMostравно Duration.UndefinedInterruptedExceptionесли текущий поток прерывается во время ожиданияTimeoutExceptionесли после ожидания указанного времени этоAwaitableвсе еще не готово
def recover[U](pf: PartialFunction[Throwable, U])(implicit executor: ExecutionContext): Future[U]
Создает новый фьючер, который будет обрабатывать любые сопоставимые исключения, которые может содержать этот фьючер. Если совпадений нет или этот фьючер содержит действительный результат, то новый фьючер будет содержать то же самое.
Пример:
Future (6 / 0) recover { case e: ArithmeticException => 0 } // result: 0
Future (6 / 0) recover { case e: NotFoundException => 0 } // result: exception
Future (6 / 2) recover { case e: ArithmeticException => 0 } // result: 3
- U
тип возвращаемого
Future- pf
функция
PartialFunctionдля применения, если этотFutureзавершается ошибкой- returns
фьючер с успешным значением этого
Futureили результатомPartialFunction
def recoverWith[U](pf: PartialFunction[Throwable, Future[U]])(implicit executor: ExecutionContext): Future[U]
Создаёт новый фьючер, который будет обрабатывать любые сопоставимые исключения, которые может содержать этот фьючер, назначив ему значение другого фьючера.
Если совпадений нет или этот фьючер содержит действительный результат, то новый фьючер будет содержать тот же результат.
Пример:
val f = Future { Int.MaxValue }
Future (6 / 0) recoverWith { case e: ArithmeticException => f } // result: Int.MaxValue
- U
тип возвращаемого
Future- pf
функция
PartialFunctionдля применения, если этотFutureзавершается ошибкой- returns
фьючер с успешным значением этого
Futureили результатомFutureвозвращённымPartialFunction
def result(atMost: Duration)(implicit permit: CanAwait): Nothing
Ожидает и возвращает результат (типа T) этого Awaitable.
Этот метод не следует вызывать напрямую; используйте Await.result вместо него.
- atMost
максимальное время ожидания, которое может быть отрицательным (ожидание не выполняется), Duration.Inf для неограниченного ожидания или конечное положительное время
- returns
значение результата, если
Awaitableзавершён в течение указанного максимального времени ожидания
- Definition Classes
- never → Awaitable
- Annotations
- @throws( clazz = classOf[TimeoutException] ) @throws( clazz = classOf[InterruptedException] )
- Исключения
-
IllegalArgumentExceptionеслиatMostравно Duration.UndefinedInterruptedExceptionесли текущий поток прерывается во время ожиданияTimeoutExceptionесли после ожидания указанного времени этотAwaitableвсё ещё не готов
final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
def toString(): String
def transform[S](f: (Try[Nothing]) ⇒ Try[S])(implicit executor: ExecutionContext): Future[S]
Создаёт новый Future, применяя указанную функцию к результату этого Future. Если при применении функции 'f' возникает какое-либо исключение, которое не является фатальным, то это исключение будет передано в результирующий future.
- S
тип возвращаемого
Future- f
функция, преобразующая результат этого future
- returns
future, который будет завершён преобразованным значением
def transform[S](s: (Nothing) ⇒ S, f: (Throwable) ⇒ Throwable)(implicit executor: ExecutionContext): Future[S]
Создаёт новый future, применяя функцию 's' к успешному результату этого future или функцию 'f' к результату с ошибкой. Если при применении 's' или 'f' возникает какое-либо нефатальное исключение, это исключение будет передано в результирующий future.
- S
тип возвращаемого
Future- s
функция, преобразующая успешный результат получателя в успешный результат возвращаемого future
- f
функция, преобразующая ошибку получателя в ошибку возвращаемого future
- returns
future, который будет завершён преобразованным значением
def transformWith[S](f: (Try[Nothing]) ⇒ Future[S])(implicit executor: ExecutionContext): Future[S]
Создаёт новый Future, применяя указанную функцию, которая создаёт Future, к результату этого Future. Если при применении функции 'f' возникает какое-либо нефатальное исключение, то это исключение будет передано в результирующий future.
- S
тип возвращаемого
Future- f
функция, преобразующая результат этого future
- returns
future, который будет завершён преобразованным значением
def value: Option[Try[Nothing]]
Текущее значение этого Future.
Примечание: использование этого метода приводит к недетерминированным программам.
Если future не завершён, возвращаемое значение будет None. Если future завершён, значение будет Some(Success(t)), если оно содержало действительный результат, или Some(Failure(error)), если оно содержало исключение.
- returns
None, еслиFutureне был завершён,Some, если он был завершён.
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long): Unit
final def withFilter(p: (Nothing) ⇒ Boolean)(implicit executor: ExecutionContext): Future[Nothing]
Используется для for-comprehensions.
- Definition Classes
- Future
def zip[U](that: Future[U]): Future[(Nothing, U)]
Объединяет значения this и that фьючерсов и создаёт новый фьючерс, содержащий кортеж их результатов.
Если фьючерс this завершается ошибкой, результирующий фьючерс завершается с исключением, сохранённым в this. В противном случае, если фьючерс that завершается ошибкой, результирующий фьючерс завершается с исключением, сохранённым в that.
- U
тип другого
Future- that
другой
Future- возвращает
фьючерс
Futureс результатами обоих фьючерсов или ошибкой первого из них, завершившегося ошибкой
def zipWith[U, R](that: Future[U])(f: (Nothing, U) ⇒ R)(implicit executor: ExecutionContext): Future[R]
Объединяет значения this и that фьючерсов с помощью функции f, и создаёт новый фьючерс, содержащий результат.
Если фьючерс this завершается ошибкой, результирующий фьючерс завершается с исключением, сохранённым в this. В противном случае, если фьючерс that завершается ошибкой, результирующий фьючерс завершается с исключением, сохранённым в that. Если применение f вызывает исключение, результирующий фьючерс завершается с этим исключением, если оно не является фатальным.
- U
тип другого
Future- R
тип результирующего
Future- that
другой
Future- f
функция для применения к результатам
thisиthat- возвращает
фьючерс
Futureс результатом примененияfк результатамthisиthat
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/concurrent/Future$$never$.html
Future, который никогда не завершается.