code: public static void after(final PromiseListener<?> listener, final Promise<?>... promises) {
      final SettablePromise<Object> afterPromise = Promises.settable();
      final PromiseListener<Object> countDownListener =
          new CountDownPromiseListener<Object>(promises.length, afterPromise, null);
  
      for (Promise<?> promise : promises) {
        unwildcardPromise(promise).addListener(countDownListener);
      }
  
      afterPromise.addListener(unwildcardListener(listener));
    }
docs: Invokes the {@code listener} once all given {@code promises} have been resolved.
  
  @param listener the listener to invoke when the promises have finished.
  @param promises the set of promises that must be resolved
  
  @see com.linkedin.parseq.promise.PromiseListener