Extensions for io.reactivex.ObservableSource

awaitFirst

suspend fun <T> ObservableSource<T>.awaitFirst(): T

Awaits for the first value from the given observable without blocking a thread. Returns the resulting value or throws the corresponding exception if this observable had produced error.

awaitFirstOrDefault

suspend fun <T> ObservableSource<T>.awaitFirstOrDefault(
    default: T
): T

Awaits for the first value from the given observable or the default value if none is emitted without blocking a thread and returns the resulting value or throws the corresponding exception if this observable had produced error.

awaitFirstOrElse

suspend fun <T> ObservableSource<T>.awaitFirstOrElse(
    defaultValue: () -> T
): T

Awaits for the first value from the given observable or call defaultValue to get a value if none is emitted without blocking a thread and returns the resulting value or throws the corresponding exception if this observable had produced error.

awaitFirstOrNull

suspend fun <T> ObservableSource<T>.awaitFirstOrNull(): T?

Awaits for the first value from the given observable or null value if none is emitted without blocking a thread and returns the resulting value or throws the corresponding exception if this observable had produced error.

awaitLast

suspend fun <T> ObservableSource<T>.awaitLast(): T

Awaits for the last value from the given observable without blocking a thread. Returns the resulting value or throws the corresponding exception if this observable had produced error.

awaitSingle

suspend fun <T> ObservableSource<T>.awaitSingle(): T

Awaits for the single value from the given observable without blocking a thread. Returns the resulting value or throws the corresponding exception if this observable had produced error.

consumeEach

suspend fun <T> ObservableSource<T>.consumeEach(
    action: (T) -> Unit
): Unit

Subscribes to this ObservableSource and performs the specified action for each received element.

iterator

operator fun <T> ObservableSource<T>.iterator(): ChannelIterator<T>

Subscribes to this Observable and returns an iterator to receive elements emitted by it.

openSubscription

fun <T> ObservableSource<T>.openSubscription(): SubscriptionReceiveChannel<T>

Subscribes to this ObservableSource and returns a channel to receive elements emitted by it. The resulting channel shall be closed to unsubscribe from this source.