src/main/java/io/reactivex/Single.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Single<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        return toSingle(Flowable.<T>fromFuture(future, timeout, unit));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Single<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        return toSingle(Flowable.<T>fromFuture(future, timeout, unit));
    }
Converts a {@link Future} into a {@code Single}, with a timeout on the Future.
<p>
<img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Single.from.Future.png" alt="">
<p>
You can convert any object that supports the {@link Future} interface into a {@code Single} that emits
the return value of the {@link Future#get} method of that object, by passing the object into the
{@code from} method.
<p>
<em>Important note:</em> This {@code Single} is blocking; 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 {@code Single}
@return a {@code Single} that emits the item from the source {@link Future}
@see <a href="http://reactivex.io/documentation/operators/from.html">ReactiveX operators documentation: From</a>