Пакет 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 в противном случае. Этот метод возвращает ненулевое значение, если либо 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)
восстановитьСИсключением
Возобновляет выполнение соответствующей сопрограммы так, что исключение повторно выбрасывается сразу после последней точки приостановки.
fun <T> Continuation<T>.resumeWithException( exception: Throwable)
запуститьСопрограмму
Запускает сопрограмму без получателя и с типом результата T. Эта функция создаёт и запускает новый, свежий экземпляр приостанавливаемого вычисления каждый раз при вызове. Продолжение
fun <T> (suspend () -> T).startCoroutine(
completion: Continuation<T>)
Запускает сопрограмму с типом получателя R и типом результата T. Эта функция создаёт и запускает новый, свежий экземпляр приостанавливаемого вычисления каждый раз при вызове. Продолжение
fun <R, T> (suspend R.() -> T).startCoroutine(
receiver: R,
completion: Continuation<T>)
suspendCoroutine
Получает текущий экземпляр продолжения внутри приостанавливаемых функций и приостанавливает текущую выполняющуюся сопрограмму.
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