Пакет kotlin.coroutines
Основные примитивы для создания и приостановки сопрограмм: интерфейсы Continuation, CoroutineContext, а также функции высшего уровня для создания и приостановки сопрограмм.
Типы
AbstractCoroutineContextElement
Базовый класс для реализации CoroutineContext.Element.
abstract class AbstractCoroutineContextElement : Element
AbstractCoroutineContextKey
Базовый класс для CoroutineContext.Key, связанного с полиморфной реализацией CoroutineContext.Element. Полиморфная реализация элемента подразумевает делегирование методов get и minusKey соответственно методам getPolymorphicElement и minusPolymorphicKey.
abstract class AbstractCoroutineContextKey<B : Element, E : B> : Key<E>
Continuation
Интерфейс, представляющий продолжение после точки приостановки, возвращающее значение типа T.
interface Continuation<in T>
ContinuationInterceptor
Помечает элемент контекста сопрограммы, который перехватывает продолжения сопрограмм. Система сопрограмм использует ContinuationInterceptor.Key для извлечения перехватчика и перехватывает все продолжения сопрограмм вызовами interceptContinuation.
interface ContinuationInterceptor : Element
CoroutineContext
EmptyCoroutineContext
Пустой контекст сопрограммы.
object EmptyCoroutineContext : CoroutineContext, Serializable
SuspendFunction
Представляет значение функционального типа, такого как лямбда, анонимная функция или ссылка на функцию.
interface SuspendFunction<out R>
Аннотации
RestrictsSuspension
Классы и интерфейсы, помеченные этой аннотацией, ограничены при использовании в качестве получателей для расширяющих suspend функций. Эти suspend расширения могут вызывать только другие члены или расширяющие suspend функции на этом конкретном получателе и ограничены от вызова произвольных приостанавливаемых функций.
annotation class RestrictsSuspension
Свойства
coroutineContext
Возвращает контекст текущей сопрограммы.
suspend val coroutineContext: CoroutineContext
Функции
Продолжение
Создаёт экземпляр Продолжения с заданным контекстом и реализацией метода resumeWith.
fun <T> Continuation( context: CoroutineContext, resumeWith: (Result<T>) -> Unit ): Continuation<T>
createCoroutine
Создаёт сопрограмму без получателя и с типом результата T. Эта функция каждый раз создаёт новый, свежий экземпляр приостанавливаемого вычисления при вызове.
fun <T> (suspend () -> T).createCoroutine( completion: Continuation<T> ): Continuation<Unit>
getPolymorphicElement
Возвращает текущий элемент, если он ассоциирован с заданным ключом полиморфным способом или null в противном случае. Этот метод возвращает значение, отличное от null, если либо Element.key равен заданному ключу, либо если ключ связан с Element.key через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.
fun <E : Element> Element.getPolymorphicElement( key: Key<E> ): E?
minusPolymorphicKey
Возвращает пустой контекст сопрограммы, если элемент связан с заданным ключом полиморфным способом или null в противном случае. Этот метод возвращает пустой контекст, если либо Element.key равен заданному ключу, либо если ключ связан с Element.key через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.
fun Element.minusPolymorphicKey( key: Key<*> ): CoroutineContext
возобновить
Возобновляет выполнение соответствующей сопрограммы, передавая значение в качестве значения возврата последней точки приостановки.
fun <T> Continuation<T>.resume(value: T)
возобновитьСИсключением
Возобновляет выполнение соответствующей сопрограммы таким образом, что исключение exception повторно выбрасывается сразу после последней точки приостановки.
fun <T> Continuation<T>.resumeWithException( exception: Throwable)
запуститьСопрограмму
Запускает сопрограмму без получателя и с типом результата 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>)
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