start() {
    if (this.resolver_ != null) {
      return Promise.reject(Error('Cannot call Retry.start more than once.'));
    }
    this.resolver_ = new mr.PromiseResolver();
    this.retryOnce_();
    return this.resolver_.promise;
  }
/**
   * Starts running this object.
   *
   * This method starts an asynchronous process that repeatedly calls
   * `onAttempt`.
   *
   * For each attempt, `onAttempt` is called. When `onAttempt`
   * resolves, the returned promise is resolved with the same result.
   * The returned promise rejects if `abort` is called on this object,
   * or the number of attempts specified by `setMaxAttempts` is reached.
   *
   * @return {!Promise<R>}
   * @template R
   */
Starts running this object.
This method starts an asynchronous process that repeatedly calls
`onAttempt`.

For each attempt, `onAttempt` is called. When `onAttempt`
resolves, the returned promise is resolved with the same result.
The returned promise rejects if `abort` is called on this object,
or the number of attempts specified by `setMaxAttempts` is reached.

@return {!Promise}
@template R
Starts running this object . This method starts an asynchronous process that repeatedly calls ` onAttempt ` . For each attempt ` onAttempt ` is called . When ` onAttempt ` resolves the returned promise is resolved with the same result . The returned promise rejects if ` abort ` is called on this object or the number of attempts specified by ` setMaxAttempts ` is reached . @return { !Promise } @template R
start() {
    if (this.resolver_ != null) {
      return Promise.reject(Error('Cannot call Retry.start more than once.'));
    }
    this.resolver_ = new mr.PromiseResolver();
    this.retryOnce_();
    return this.resolver_.promise;
  }
start ( ) { if ( this . resolver_ != null ) { return Promise . reject ( Error ( 'Cannot call Retry.start more than once.' ) ) ; } this . resolver_ = new mr . PromiseResolver ( ) ; this . retryOnce_ ( ) ; return this . resolver_ . promise ; }
Starts running this object.
Starts running this object .