rxFlowable
@JvmOverloads fun <T> rxFlowable(
context: CoroutineContext = DefaultDispatcher,
block: suspend ProducerScope<T>.() -> Unit
): Flowable<T>
Creates cold flowable that will run a given block in a coroutine.
Every time the returned flowable is subscribed, it starts a new coroutine.
Coroutine emits items with send
. Unsubscribing cancels running coroutine.
Invocations of send
are suspended appropriately when subscribers apply back-pressure and to ensure that
onNext
is not invoked concurrently.
Coroutine action | Signal to subscriber |
---|---|
send |
onNext |
Normal completion or close without cause |
onComplete |
Failure with exception or close with cause |
onError |
The context for the new coroutine can be explicitly specified.
See CoroutineDispatcher for the standard context implementations that are provided by kotlinx.coroutines
.
The context of the parent coroutine from its scope may be used,
in which case the Job of the resulting coroutine is a child of the job of the parent coroutine.
If the context does not have any dispatcher nor any other ContinuationInterceptor, then DefaultDispatcher is used.
Parameters
context
- context of the coroutine. The default value is DefaultDispatcher.
block
- the coroutine code.