code: @Override
      public IPromise<T> onTimeout(Consumer timeoutHandler) {
          return then( (r,e) -> {
              if ( e == Timeout.INSTANCE ) {
                  timeoutHandler.accept(e);
              }
          });
      }
docs: see IPromise (inheriting Callback) interface