whenHighlightedGeneralsAsync(callback) {
    if (this._highlightedGeneralsPromise == null) {
      this._highlightedGeneralsPromise = new Promise((resolve, reject) => {
        this.whenStatus(GameLayer.STATUS.NEW).then(() => {
          if (this._highlightingGeneralsPromise != null) {
            // use the highlighting generals promise
            this._highlightingGeneralsPromise.then(resolve);
          } else {
            resolve();
          }
        });
      });
    }

    this._highlightedGeneralsPromise.nodeify(callback);

    return this._highlightedGeneralsPromise;
  }
Returns a promise when both generals have been highlighted. This is useful when you don't want to explicitly highlight generals, but want to do something IF the generals are highlighted.
@returns {Promise}