Spec-Zone.ru › Kotlin 2

ContinuationInterceptor

kotlin-stdlib/kotlin.coroutines/ContinuationInterceptor

Версия Kotlin: 1.3

interface ContinuationInterceptor : CoroutineContext.Element

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

ContinuationInterceptor ведёт себя как полиморфный элемент, то есть его реализация делегирует вызовы get и minusKey соответственно методам getPolymorphicElement и minusPolymorphicKey. Подтипы ContinuationInterceptor можно извлечь из контекста корутины с помощью ContinuationInterceptor.Key или ключа подтипа, если он расширяет AbstractCoroutineContextKey.

Типы

Key

Версия Kotlin: 1.3

object Key : CoroutineContext.Key<ContinuationInterceptor> 

Ключ, определяющий перехватчик контекста.

Свойства

key

Версия Kotlin: 1.3

abstract val key: CoroutineContext.Key<*>

Ключ этого элемента контекста корутины.

Функции

fold

Версия Kotlin: 1.3

open override fun <R> fold(initial: R, operation: (R, CoroutineContext.Element) -> R): R

Накапливает элементы этого контекста, начиная со начального значения и применяя операцию слева направо к текущему значению аккумулятора и каждому элементу этого контекста.

get

Версия Kotlin: 1.3

open operator override fun <E : CoroutineContext.Element> get(key: CoroutineContext.Key<E>): E?

Возвращает элемент с указанным ключом из этого контекста или null.

getPolymorphicElement

Версия Kotlin: 1.3

@ExperimentalStdlibApi
fun <E : CoroutineContext.Element> CoroutineContext.Element.getPolymorphicElement(key: CoroutineContext.Key<E>): E?

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

interceptContinuation

Версия Kotlin: 1.3

abstract fun <T> interceptContinuation(continuation: Continuation<T>): Continuation<T>

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

minusKey

Версия Kotlin: 1.3

open override fun minusKey(key: CoroutineContext.Key<*>): CoroutineContext

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

minusPolymorphicKey

Версия Kotlin: 1.3

@ExperimentalStdlibApi
fun CoroutineContext.Element.minusPolymorphicKey(key: CoroutineContext.Key<*>): CoroutineContext

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

plus

Версия Kotlin: 1.3

open operator fun plus(context: CoroutineContext): CoroutineContext

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

releaseInterceptedContinuation

Версия Kotlin: 1.3

open fun releaseInterceptedContinuation(continuation: Continuation<*>)

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

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

Spec-Zone.ru

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