Package kotlinx.coroutines.reactive

Utilities for Reactive Streams.

Types

PublisherCoroutine

class PublisherCoroutine<in T> : 
    AbstractCoroutine<Unit>,
    ProducerScope<T>,
    Subscription,
    SelectClause2<T, SendChannel<T>>

Extensions for External Classes

kotlinx.coroutines.CoroutineScope

kotlinx.coroutines.channels.ReceiveChannel

kotlinx.coroutines.flow.Flow

org.reactivestreams.Publisher

Functions

publish

fun <T> publish(
    context: CoroutineContext = EmptyCoroutineContext,
    block: suspend ProducerScope<T>.() -> Unit
): Publisher<T>

Creates cold reactive Publisher that runs a given block in a coroutine. Every time the returned flux is subscribed, it starts a new coroutine in the specified context. Coroutine emits (Subscriber.onNext) values with send, completes (Subscriber.onComplete) when the coroutine completes or channel is explicitly closed and emits error (Subscriber.onError) if coroutine throws an exception or closes channel with a cause. Unsubscribing cancels running coroutine.