code: @SuppressWarnings({ "cast", "unchecked" })
      @CheckReturnValue
      @BackpressureSupport(BackpressureKind.FULL)
      @SchedulerSupport(SchedulerSupport.CUSTOM)
      public static <T> Flowable<T> fromFuture(Future<? extends T> future, Scheduler scheduler) {
          ObjectHelper.requireNonNull(scheduler, "scheduler is null");
          return fromFuture((Future<T>)future).subscribeOn(scheduler);
      }
docs: Converts a {@link Future}, operating on a specified {@link Scheduler}, into a Publisher.
  <p>
  <img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/from.Future.s.png" alt="">
  <p>
  You can convert any object that supports the {@link Future} interface into a Publisher that emits the
  return value of the {@link Future#get} method of that object by passing the object into the {@code from}
  method.
  <p>
  Unlike 1.x, canceling the Flowable won't cancel the future. If necessary, one can use composition to achieve the
  cancellation effect: {@code futurePublisher.doOnCancel(() -> future.cancel(true));}.
  <dl>
  <dt><b>Backpressure:</b></dt>
  <dd>The operator honors backpressure from downstream.</dd>
  <dt><b>Scheduler:</b></dt>
  <dd>You specify which {@link Scheduler} this operator will use.</dd>
  </dl>
  
  @param future
  the source {@link Future}
  @param scheduler
  the {@link Scheduler} to wait for the Future on. Use a Scheduler such as
  {@link Schedulers#io()} that can block and wait on the Future
  @param <T>
  the type of object that the {@link Future} returns, and also the type of item to be emitted by
  the resulting Publisher
  @return a Flowable that emits the item from the source {@link Future}
  @see <a href="http://reactivex.io/documentation/operators/from.html">ReactiveX operators documentation: From</a>