fun <T> rxMaybe(
    context: CoroutineContext = EmptyCoroutineContext,
    block: suspend CoroutineScope.() -> T?
): Maybe<T>

Creates cold maybe that will run a given block in a coroutine. Every time the returned observable is subscribed, it starts a new coroutine. Coroutine returns a single, possibly null value. Unsubscribing cancels running coroutine.

Coroutine action Signal to subscriber
Returns a non-null value onSuccess
Returns a null onComplete
Failure with exception or unsubscribe onError

Coroutine context can be specified with context argument. If the context does not have any dispatcher nor any other ContinuationInterceptor, then Dispatchers.Default is used. Method throws IllegalArgumentException if provided context contains a Job instance.