Even if the waitTime === 0, it is good and valid return to return a promise:
return new Promise((resolve, reject) => {
setTimeout(() => resolve(axios(error.config)), waitTime);
});
This will put it on the event queue, and if there's nothing else there, resolve immediately.