function axiosCall () {
  return new Promise((resolve, reject) => {
    Axios.post(URL, {apiKey}).then((response) => {
      resolve(response.data.message);
    }).catch((error) => {
      reject(error);
    });
  });
}

instance.interceptors.request.use((config) => {
       return axiosCall().then((tokenResponse) => {
          setWebCreds(tokenResponse);
          config.headers.Authorization = `Bearer ${tokenResponse}`;
          return Promise.resolve(config)
        }).catch(error => {
           // decide what to do if you can't get your token
        })
}, (error) => {
  return Promise.reject(error);
});

https://github.com/axios/axios/issues/754