src/main/java/io/reactivex/Maybe.java
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Maybe<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        ObjectHelper.requireNonNull(future, "future is null");
        ObjectHelper.requireNonNull(unit, "unit is null");
        return RxJavaPlugins.onAssembly(new MaybeFromFuture<T>(future, timeout, unit));
    }
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Maybe<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        ObjectHelper.requireNonNull(future, "future is null");
        ObjectHelper.requireNonNull(unit, "unit is null");
        return RxJavaPlugins.onAssembly(new MaybeFromFuture<T>(future, timeout, unit));
    }
@ CheckReturnValue @ NonNull @ SchedulerSupport ( SchedulerSupport . NONE ) public static < T > Maybe < T > fromFuture ( Future < ? extends T > future , long timeout , TimeUnit unit ) { ObjectHelper . requireNonNull ( future , "future is null" ) ; ObjectHelper . requireNonNull ( unit , "unit is null" ) ; return RxJavaPlugins . onAssembly ( new MaybeFromFuture < T > ( future , timeout , unit ) ) ; }
Converts a {@link Future} into a Maybe, with a timeout on the Future.
<p>
<img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/from.Future.png" alt="">
<p>
You can convert any object that supports the {@link Future} interface into a Maybe that emits the
return value of the {@link Future#get} method of that object, by passing the object into the {@code fromFuture}
method.
<p>
Unlike 1.x, disposing the Maybe won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: {@code futureMaybe.doOnCancel(() -> future.cancel(true));}.
<p>
<em>Important note:</em> This Maybe is blocking on the thread it gets subscribed on; you cannot dispose it.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code fromFuture} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param future
the source {@link Future}
@param timeout
the maximum time to wait before calling {@code get}
@param unit
the {@link TimeUnit} of the {@code timeout} argument
@param <T>
the type of object that the {@link Future} returns, and also the type of item to be emitted by
the resulting Maybe
@return a Maybe that emits the item from the source {@link Future}
@see <a href="http://reactivex.io/documentation/operators/from.html">ReactiveX operators documentation: From</a>
Converts a { @link Future } into a Maybe with a timeout on the Future . <p > <img width = 640 height = 315 src = https : // raw . github . com / wiki / ReactiveX / RxJava / images / rx - operators / from . Future . png alt = > <p > You can convert any object that supports the { @link Future } interface into a Maybe that emits the return value of the { @link Future#get } method of that object by passing the object into the { @code fromFuture } method . <p > Unlike 1 . x disposing the Maybe won t cancel the future . If necessary one can use composition to achieve the cancellation effect : { @code futureMaybe . doOnCancel (( ) - > future . cancel ( true )) ; } . <p > <em > Important note : < / em > This Maybe is blocking on the thread it gets subscribed on ; you cannot dispose it . <dl > <dt > <b > Scheduler : < / b > < / dt > <dd > { @code fromFuture } does not operate by default on a particular { @link Scheduler } . < / dd > < / dl >