src/main/java/io/reactivex/Observable.java
@SuppressWarnings({ "rawtypes", "unchecked" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> switchOnNextDelayError(ObservableSource<? extends ObservableSource<? extends T>> sources, int prefetch) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMap(sources, Functions.identity(), prefetch, true));
    }
@SuppressWarnings({ "rawtypes", "unchecked" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> switchOnNextDelayError(ObservableSource<? extends ObservableSource<? extends T>> sources, int prefetch) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ObservableSwitchMap(sources, Functions.identity(), prefetch, true));
    }
Converts an ObservableSource that emits ObservableSources into an ObservableSource that emits the items emitted by the
most recently emitted of those ObservableSources and delays any exception until all ObservableSources terminate.
<p>
<img width="640" height="370" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/switchOnNextDelayError.png" alt="">
<p>
{@code switchOnNext} subscribes to an ObservableSource that emits ObservableSources. Each time it observes one of
these emitted ObservableSources, the ObservableSource returned by {@code switchOnNext} begins emitting the items
emitted by that ObservableSource. When a new ObservableSource is emitted, {@code switchOnNext} stops emitting items
from the earlier-emitted ObservableSource and begins emitting items from the new one.
<p>
The resulting ObservableSource completes if both the main ObservableSource and the last inner ObservableSource, if any, complete.
If the main 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.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code switchOnNextDelayError} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <T> the item type
@param sources
the source ObservableSource that emits ObservableSources
@param prefetch
the number of items to prefetch from the inner ObservableSources
@return an Observable that emits the items emitted by the ObservableSource most recently emitted by the source
ObservableSource
@see <a href="http://reactivex.io/documentation/operators/switch.html">ReactiveX operators documentation: Switch</a>
@since 2.0