src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    @NonNull
    public final <R> Observable<R> switchMapSingleDelayError(@NonNull Function<? super T, ? extends SingleSource<? extends R>> mapper) {
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMapSingle<T, R>(this, mapper, true));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    @NonNull
    public final <R> Observable<R> switchMapSingleDelayError(@NonNull Function<? super T, ? extends SingleSource<? extends R>> mapper) {
        ObjectHelper.requireNonNull(mapper, "mapper is null");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMapSingle<T, R>(this, mapper, true));
    }
Returns a new ObservableSource by applying a function that you supply to each item emitted by the source
ObservableSource that returns a SingleSource, and then emitting the item emitted by the most recently emitted
of these SingleSources and delays any error until all SingleSources terminate.
<p>
The resulting ObservableSource completes if both the upstream ObservableSource and the last inner SingleSource, if any, complete.
If the upstream ObservableSource signals an onError, the termination of the last inner SingleSource will emit that error as is
or wrapped into a CompositeException along with the other possible errors the former inner SingleSources signalled.
<p>
<img width="640" height="467" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/switchMapSingleDelayError.o.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code switchMapSingleDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.0.8 - experimental
@param <R> the element type of the inner SingleSources and the output
@param mapper
a function that, when applied to an item emitted by the source ObservableSource, returns a
SingleSource
@return an Observable that emits the item emitted by the SingleSource 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.2