fun <T> mono(
context: CoroutineContext = EmptyCoroutineContext,
block: suspend CoroutineScope.() -> T?
Creates cold mono that will run a given block in a coroutine and emits its result.
Every time the returned mono is subscribed, it starts a new coroutine.
If block result is
null, MonoSink.success is invoked without a value.
Unsubscribing cancels running coroutine.