code: function PromiseConstructor(executor, options) {
              // apply mixin
              var cancelable = makeCancelable($.Deferred(), options);
              $.extend(true, this, cancelable.df, cancelable.target);
              this.abort = cancelable.abort.bind(this);
              this.dependOn = cancelable.dependOn.bind(this);
              executor(this.resolve, this.reject, this.dependOn);
          }
docs: @example <br>
  
  ```ts
  // override global "Promise" for using Cancelable Promise in this module scope.
  import { Promise } from "cdp";
  
  function (): IPromise<SomeData> => {
  return new Promise((resolve, reject, dependOn) => {
  // async1(), async2() are async function and returned IPromise instance.
  dependOn(async1())
  .then(() => {
  return dependOn(async2());
  })
  .then(() => {
  resolve({ somedata: "hoge" });
  })
  .catch((error) => {
  reject(error);
  });
  });
  };
  }
  ```
  
  @param executor
  - `en` ES2015 Promise executer compatible with `dependOn` 3rd arg.
  - `ja` ES6 Promise 互換引数. (dependOn を第3引数に渡す)
  @param options
  - `en` set the extend object or cancel callback function.
  - `ja` jQueryPromise を拡張するオブジェクト or キャンセル時に呼び出される関数を指定