code: @Override
      public IPromise<T> thenAnd(Supplier<IPromise<T>> callable) {
          Promise res = new Promise<>();
          then( new Callback<T>() {
              @Override
              public void complete(T result, Object error) {
                  if ( Actor.isError(error) ) {
                      res.complete(null, error);
                  } else {
                      IPromise<T> call = null;
                      call = callable.get().then(res);
                  }
              }
          });
          return res;
      }
docs: see IPromise (inheriting Callback) interface