code: public static <T> Observable<T> deferFuture(Func0<? extends Future<? extends Observable<? extends T>>> observableFactoryAsync) {
          return OperatorDeferFuture.deferFuture(observableFactoryAsync);
      }
docs: Returns an Observable that starts the specified asynchronous factory function whenever a new observer
  subscribes.
  <p>
  <em>Important note</em> subscribing to the resulting Observable blocks until the future completes.
  <p>
  <img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/deferFuture.png" alt="">
  
  @param <T> the result type
  @param observableFactoryAsync the asynchronous function to start for each observer
  @return the Observable emitting items produced by the asynchronous observer produced by the factory
  @see #deferFuture(rx.functions.Func0, rx.Scheduler)
  @see <a href="https://github.com/ReactiveX/RxJava/wiki/Async-Operators#wiki-deferfuture">RxJava Wiki: deferFuture()</a>