code: public static <T> FutureTask<Void> forEachFuture(
              Observable<? extends T> source,
              Action1<? super T> onNext,
              Scheduler scheduler) {
          FutureTask<Void> task = OperatorForEachFuture.forEachFuture(source, onNext);
          final Worker inner = scheduler.createWorker();
          inner.schedule(Functionals.fromRunnable(task, inner));
          return task;
      }
docs: Subscribes to the given source and calls the callback for each emitted item, and surfaces the completion
  or error through a Future, scheduled on the given scheduler.
  <p>
  <img width="640" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/forEachFuture.s.png" alt="">
  
  @param <T> the source value type
  @param source the source Observable
  @param onNext the action to call with each emitted element
  @param scheduler the Scheduler where the task will await the termination of the for-each
  @return the Future representing the entire for-each operation
  @see <a href="https://github.com/ReactiveX/RxJava/wiki/Async-Operators#wiki-foreachfuture">RxJava Wiki: forEachFuture()</a>