Try adding the caching back in using `this.tokenPromise` instead of the semi-global `var tokenPromise`.