@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> flatMap(
            Function<? super T, ? extends ObservableSource<? extends R>> onNextMapper,
            Function<? super Throwable, ? extends ObservableSource<? extends R>> onErrorMapper,
            Callable<? extends ObservableSource<? extends R>> onCompleteSupplier) {
    """
	Returns an Observable that applies a function to each item emitted or notification raised by the source
	ObservableSource and then flattens the ObservableSources returned from these functions and emits the resulting items.
	<p>
	<img width="640" height="410" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/mergeMap.nce.png" alt="">
	<dl>
	<dt><b>Scheduler:</b></dt>
	<dd>{@code flatMap} does not operate by default on a particular {@link Scheduler}.</dd>
	</dl>
	
	@param <R>
	the result type
	@param onNextMapper
	a function that returns an ObservableSource to merge for each item emitted by the source ObservableSource
	@param onErrorMapper
	a function that returns an ObservableSource to merge for an onError notification from the source
	ObservableSource
	@param onCompleteSupplier
	a function that returns an ObservableSource to merge for an onComplete notification from the source
	ObservableSource
	@return an Observable that emits the results of merging the ObservableSources returned from applying the
	specified functions to the emissions and notifications of the source ObservableSource
	@see <a href="http://reactivex.io/documentation/operators/flatmap.html">ReactiveX operators documentation: FlatMap</a>
    """
        ObjectHelper.requireNonNull(onNextMapper, "onNextMapper is null");
        ObjectHelper.requireNonNull(onErrorMapper, "onErrorMapper is null");
        ObjectHelper.requireNonNull(onCompleteSupplier, "onCompleteSupplier is null");
        return merge(new ObservableMapNotification<T, R>(this, onNextMapper, onErrorMapper, onCompleteSupplier));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Observable<R> flatMap(
            Function<? super T, ? extends ObservableSource<? extends R>> onNextMapper,
            Function<? super Throwable, ? extends ObservableSource<? extends R>> onErrorMapper,
            Callable<? extends ObservableSource<? extends R>> onCompleteSupplier) {
        ObjectHelper.requireNonNull(onNextMapper, "onNextMapper is null");
        ObjectHelper.requireNonNull(onErrorMapper, "onErrorMapper is null");
        ObjectHelper.requireNonNull(onCompleteSupplier, "onCompleteSupplier is null");
        return merge(new ObservableMapNotification<T, R>(this, onNextMapper, onErrorMapper, onCompleteSupplier));
    }
@ CheckReturnValue @ SchedulerSupport ( SchedulerSupport . NONE ) public final < R > Observable < R > flatMap ( Function < ? super T , ? extends ObservableSource < ? extends R > > onNextMapper , Function < ? super Throwable , ? extends ObservableSource < ? extends R > > onErrorMapper , Callable < ? extends ObservableSource < ? extends R > > onCompleteSupplier ) { ObjectHelper . requireNonNull ( onNextMapper , "onNextMapper is null" ) ; ObjectHelper . requireNonNull ( onErrorMapper , "onErrorMapper is null" ) ; ObjectHelper . requireNonNull ( onCompleteSupplier , "onCompleteSupplier is null" ) ; return merge ( new ObservableMapNotification < T , R > ( this , onNextMapper , onErrorMapper , onCompleteSupplier ) ) ; }
Returns an Observable that applies a function to each item emitted or notification raised by the source
ObservableSource and then flattens the ObservableSources returned from these functions and emits the resulting items.
<p>
<img width="640" height="410" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/mergeMap.nce.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code flatMap} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <R>
the result type
@param onNextMapper
a function that returns an ObservableSource to merge for each item emitted by the source ObservableSource
@param onErrorMapper
a function that returns an ObservableSource to merge for an onError notification from the source
ObservableSource
@param onCompleteSupplier
a function that returns an ObservableSource to merge for an onComplete notification from the source
ObservableSource
@return an Observable that emits the results of merging the ObservableSources returned from applying the
specified functions to the emissions and notifications of the source ObservableSource
@see <a href="http://reactivex.io/documentation/operators/flatmap.html">ReactiveX operators documentation: FlatMap</a>
Returns an Observable that applies a function to each item emitted or notification raised by the source ObservableSource and then flattens the ObservableSources returned from these functions and emits the resulting items . <p > <img width = 640 height = 410 src = https : // raw . github . com / wiki / ReactiveX / RxJava / images / rx - operators / mergeMap . nce . png alt = > <dl > <dt > <b > Scheduler : < / b > < / dt > <dd > { @code flatMap } does not operate by default on a particular { @link Scheduler } . < / dd > < / dl >