Spec-Zone.ru › Kotlin 1.8

Пакет kotlin.coroutines

kotlin-stdlib / kotlin.coroutines

Базовые примитивы для создания и приостановки сопроцедур: интерфейсы Continuation, CoroutineContext, функции верхнего уровня для создания и приостановки сопроцедур.

Типы

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

AbstractCoroutineContextElement

Базовый класс для реализаций CoroutineContext.Element.

abstract class AbstractCoroutineContextElement : Element
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

AbstractCoroutineContextKey

Базовый класс для CoroutineContext.Key, связанного с полиморфной реализацией CoroutineContext.Element. Полиморфная реализация элемента подразумевает делегирование его get и minusKey методам соответственно getPolymorphicElement и minusPolymorphicKey.

abstract class AbstractCoroutineContextKey<B : Element, E : B> : 
    Key<E>
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

Continuation

Интерфейс, представляющий продолжение после точки приостановки, возвращающее значение типа T.

interface Continuation<in T>
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

ContinuationInterceptor

Помечает элемент контекста сопроцедуры, который перехватывает продолжения сопроцедур. Система сопроцедур использует ContinuationInterceptor.Key для получения интерцептора и перехватывает все продолжения сопроцедур с вызовами interceptContinuation.

interface ContinuationInterceptor : Element
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

CoroutineContext

Постоянный контекст для сопроцедуры. Представляет собой индексированный набор экземпляров Element. Индексированный набор представляет собой смесь множества и карты. Каждый элемент в этом наборе имеет уникальный Key.

interface CoroutineContext
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

EmptyCoroutineContext

Пустой контекст сопроцедуры.

object EmptyCoroutineContext : CoroutineContext, Serializable
Требования к платформе и версии: Native (1.3)

SuspendFunction

Представляет значение функционального типа, такого как лямбда, анонимная функция или ссылка на функцию.

interface SuspendFunction<out R>

Аннотации

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

RestrictsSuspension

Классы и интерфейсы, помеченные этой аннотацией, ограничены при использовании в качестве получателей для расширяющих suspend функций. Эти suspend расширения могут вызывать только другие методы или расширяющие suspend функции на этом конкретном получателе и ограничены от вызова произвольных функций приостановки.

annotation class RestrictsSuspension

Свойства

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

coroutineContext

Возвращает контекст текущей сопроцедуры.

suspend val coroutineContext: CoroutineContext

Функции

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

Подвешенное выполнение

Создаёт экземпляр Подвешенного выполнения с заданным контекстом и реализацией метода resumeWith.

fun <T> Continuation(
    context: CoroutineContext, 
    resumeWith: (Result<T>) -> Unit
): Continuation<T>
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

создатьКорутину

Создаёт корутину без получателя и с типом результата T. Эта функция создаёт новый, независимый экземпляр приостанавливаемого вычисления каждый раз при вызове.

fun <T> (suspend () -> T).createCoroutine(
    completion: Continuation<T>
): Continuation<Unit>

Создаёт корутину с типом получателя R и типом результата T. Эта функция создаёт новый, независимый экземпляр приостанавливаемого вычисления каждый раз при вызове.

fun <R, T> (suspend R.() -> T).createCoroutine(
    receiver: R, 
    completion: Continuation<T>
): Continuation<Unit>
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

получитьПолиморфныйЭлемент

Возвращает текущий элемент, если он связан с данным ключом полиморфным образом, или null в противном случае. Этот метод возвращает ненулевое значение, если либо ключ элемента равен заданному ключу, или если ключ связан с ключом элемента через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.

fun <E : Element> Element.getPolymorphicElement(
    key: Key<E>
): E?
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

исключитьПолиморфныйКлюч

Возвращает пустой контекст корутины, если элемент связан с заданным ключом полиморфным образом, или null в противном случае. Этот метод возвращает пустой контекст, если либо ключ элемента равен заданному ключу, или если ключ связан с ключом элемента через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.

fun Element.minusPolymorphicKey(
    key: Key<*>
): CoroutineContext
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

возобновить

Возобновляет выполнение соответствующей корутины, передавая значение в качестве возвращаемого значения последней точки приостановки.

fun <T> Continuation<T>.resume(value: T)
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

возобновитьСИсключением

Возобновляет выполнение соответствующей корутины таким образом, что исключение повторно генерируется сразу после последней точки приостановки.

fun <T> Continuation<T>.resumeWithException(
    exception: Throwable)
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

запуститьКорутину

Запускает корутину без получателя и с типом результата T. Эта функция создаёт и запускает новый, независимый экземпляр приостанавливаемого вычисления каждый раз при вызове. continuation вызывается при завершении корутины результатом или исключением.

fun <T> (suspend () -> T).startCoroutine(
    completion: Continuation<T>)

Запускает корутину с типом получателя R и типом результата T. Эта функция создаёт и запускает новый, независимый экземпляр приостанавливаемого вычисления каждый раз при вызове. continuation вызывается при завершении корутины результатом или исключением.

fun <R, T> (suspend R.() -> T).startCoroutine(
    receiver: R, 
    completion: Continuation<T>)
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

приостановитьКорутину

Получает текущий экземпляр подвешенного выполнения внутри функций suspend и приостанавливает текущую выполняющуюся корутину.

suspend fun <T> suspendCoroutine(
    block: (Continuation<T>) -> Unit
): T

© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/index.html

Spec-Zone.ru

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