Spec-Zone.ru › Kotlin 1.7

Пакет 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)

createCoroutine

Создаёт сопрограмму без получателя и с типом результата 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)

getPolymorphicElement

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

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

minusPolymorphicKey

Возвращает пустой контекст сопрограммы, если элемент связан с заданным ключом полиморфным способом или null в противном случае. Этот метод возвращает пустой контекст, если либо Element.key равен заданному ключу, либо если ключ связан с Element.key через 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)

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

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

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

запуститьСопрограмму

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

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

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

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

suspendCoroutine

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

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

© 2010–2022 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