code: public static <T> FutureTask<Void> forEachFuture(
          Observable<? extends T> source,
          Action1<? super T> onNext) {
          return OperatorForEachFuture.forEachFuture(source, onNext);
      }
docs: Subscribes to the given source and calls the callback for each emitted item, and surfaces the completion
  or error through a Future.
  <p>
  <em>Important note:</em> The returned task blocks indefinitely unless the {@code run()} method is called
  or the task is scheduled on an Executor.
  <p>
  <img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/forEachFuture.png" alt="">
  
  @param <T> the source value type
  @param source the source Observable
  @param onNext the action to call with each emitted element
  @return the Future representing the entire for-each operation
  @see #forEachFuture(rx.Observable, rx.functions.Action1, rx.Scheduler)
  @see <a href="https://github.com/ReactiveX/RxJava/wiki/Async-Operators#wiki-foreachfuture">RxJava Wiki: forEachFuture()</a>