Пакет 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>
создатьКорутину
Создаёт корутину без получателя и с типом результата T. Эта функция создаёт новый, независимый экземпляр приостанавливаемого вычисления каждый раз при вызове.
fun <T> (suspend () -> T).createCoroutine( completion: Continuation<T> ): Continuation<Unit>
получитьПолиморфныйЭлемент
Возвращает текущий элемент, если он связан с данным ключом полиморфным образом, или null в противном случае. Этот метод возвращает ненулевое значение, если либо ключ элемента равен заданному ключу, или если ключ связан с ключом элемента через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.
fun <E : Element> Element.getPolymorphicElement( key: Key<E> ): E?
исключитьПолиморфныйКлюч
Возвращает пустой контекст корутины, если элемент связан с заданным ключом полиморфным образом, или null в противном случае. Этот метод возвращает пустой контекст, если либо ключ элемента равен заданному ключу, или если ключ связан с ключом элемента через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.
fun Element.minusPolymorphicKey( key: Key<*> ): CoroutineContext
возобновить
Возобновляет выполнение соответствующей корутины, передавая значение в качестве возвращаемого значения последней точки приостановки.
fun <T> Continuation<T>.resume(value: T)
возобновитьСИсключением
Возобновляет выполнение соответствующей корутины таким образом, что исключение повторно генерируется сразу после последней точки приостановки.
fun <T> Continuation<T>.resumeWithException( exception: Throwable)
запуститьКорутину
Запускает корутину без получателя и с типом результата 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>)
приостановитьКорутину
Получает текущий экземпляр подвешенного выполнения внутри функций 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