src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> switchMapDelayError(Function<? super T, ? extends ObservableSource<? extends R>> mapper) {
        return switchMapDelayError(mapper, bufferSize());
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> switchMapDelayError(Function<? super T, ? extends ObservableSource<? extends R>> mapper) {
        return switchMapDelayError(mapper, bufferSize());
    }
Returns a new ObservableSource by applying a function that you supply to each item emitted by the source
ObservableSource that returns an ObservableSource, and then emitting the items emitted by the most recently emitted
of these ObservableSources and delays any error until all ObservableSources terminate.
<p>
The resulting ObservableSource completes if both the upstream ObservableSource and the last inner ObservableSource, if any, complete.
If the upstream ObservableSource signals an onError, the termination of the last inner ObservableSource will emit that error as is
or wrapped into a CompositeException along with the other possible errors the former inner ObservableSources signalled.
<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 switchMapDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <R> the element type of the inner ObservableSources and the output
@param mapper
a function that, when applied to an item emitted by the source ObservableSource, returns an
ObservableSource
@return an Observable that emits the items emitted by the ObservableSource returned from applying {@code func} to the most recently emitted item emitted by the source ObservableSource
@see <a href="http://reactivex.io/documentation/operators/flatmap.html">ReactiveX operators documentation: FlatMap</a>
@since 2.0