Awaits the first value from the given Observable, or returns null 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 or completed while the suspending function is waiting, this function immediately disposes of its subscription and resumes with CancellationException.