src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> switchMapMaybeDelayError(@NonNull Function<? super T, ? extends MaybeSource<? extends R>> mapper) {
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMapMaybe<T, R>(this, mapper, true));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> switchMapMaybeDelayError(@NonNull Function<? super T, ? extends MaybeSource<? extends R>> mapper) {
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMapMaybe<T, R>(this, mapper, true));
    }
Maps the upstream items into {@link MaybeSource}s and switches (subscribes) to the newer ones
while disposing the older ones  (and ignoring their signals) and emits the latest success value of the current one if
available, delaying errors from this {@code Observable} or the inner {@code MaybeSource}s until all terminate.
<p>
<img width="640" height="350" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/switchMap.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code switchMapMaybeDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.1.11 - experimental
@param <R> the output value type
@param mapper the function called with the current upstream event and should
return a {@code MaybeSource} to replace the current active inner source
and get subscribed to.
@return the new Observable instance
@see #switchMapMaybe(Function)
@since 2.2