Как насчет одноэлементного объекта, который будет обрабатывать поколения токенов? что-то похожее на это:
const tokenGenerator ={
getTokenPromise: null,
token: null,
getToken(){
if (!this.getTokenPromise){
this.getTokenPromise = new Promise(resolve=>{
/*supposed to be a http request*/
if (!this.token){
setTimeout(()=>{
this.token = 'generated';
resolve(this.token);
},0)
}else{
resolve(this.token);
}
})
}
return this.getTokenPromise;
}
Вы можете ссылаться на этот же объект из перехватчиков.
см. Пример: JS FIddle
ссылка: ссылка