code: function (callback, options) {
  
          $this.options.retry = {
            callback: typeof callback === "function" ? callback : null,
            attempts: options && +options.attempts || 3,
            delayInMs: options && +options.delayInMs || 250,
            delayMulti: options && +options.delayMulti || 2,
            statusCodes: (options && options.statusCodes || ["ETIMEDOUT", "5xx"]).slice(0)
          };
  
          return $this
        }
docs: Instructs the Request to be retried if specified error status codes (4xx, 5xx, ETIMEDOUT) are returned.
  Retries are delayed with an exponential backoff.
  
  @param {(err: Error) => boolean} [callback] - Invoked on response error. Return false to stop next request.
  @param {Object} [options] - Optional retry configuration to override defaults.
  @param {number} [options.attempts=3] - The number of retry attempts.
  @param {number} [options.delayInMs=250] - The delay in milliseconds (delayInMs *= delayMulti)
  @param {number} [options.delayMulti=2] - The multiplier of delayInMs after each attempt.
  @param {Array<string|number>} [options.statusCodes=["ETIMEDOUT", "5xx"]] - The status codes to retry on.
  @return {Object}