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

Awaits the first value from the given Observable, or calls defaultValue to get a value if none is emitted, without blocking the thread, and returns the resulting value, or, if this observable has produced an error, throws the corresponding exception.

This suspending function is cancellable. If the Job of the current coroutine is cancelled while the suspending function is waiting, this function immediately disposes of its subscription and resumes with CancellationException.