docs: public <TContinuationResult> Task<TContinuationResult> onSuccessTask(
        final Continuation<TResult, Task<TContinuationResult>> continuation, Executor executor,
        final CancellationToken ct) {
      return continueWithTask(new Continuation<TResult, Task<TContinuationResult>>() {
        @Override
        public Task<TContinuationResult> then(Task<TResult> task) {
          if (ct != null && ct.isCancellationRequested()) {
            return Task.cancelled();
          }
  
          if (task.isFaulted()) {
            return Task.forError(task.getError());
          } else if (task.isCancelled()) {
            return Task.cancelled();
          } else {
            return task.continueWithTask(continuation);
          }
        }
      }, executor);
    }