@NotNull
  @Override
  public AsyncFuture<Boolean> forEachAsync(@NotNull final Processor<? super T> consumer) {
    final AsyncFutureResult<Boolean> result = AsyncFutureFactory.getInstance().createAsyncFutureResult();

    AsyncFuture<Boolean> fq = myQuery1.forEachAsync(consumer);

    fq.addConsumer(SameThreadExecutor.INSTANCE, new DefaultResultConsumer<>(result) {
      @Override
      public void onSuccess(Boolean value) {
        if (value.booleanValue()) {
          AsyncFuture<Boolean> fq2 = myQuery2.forEachAsync(consumer);
          fq2.addConsumer(SameThreadExecutor.INSTANCE, new DefaultResultConsumer<>(result));
        }
        else {
          result.set(false);
        }
      }
    });
    return result;
  }
@NotNull
  @Override
  public AsyncFuture<Boolean> forEachAsync(@NotNull final Processor<? super T> consumer)