Estoy tratando de iniciar un cliente Axios para mi aplicación React. Quiero usar el cliente autenticado para hacer solicitudes. La configuración actual se ve como sigue. Debido a que el servicio de sesión es asíncrono para verificar un token en caché y validarlo contra el servidor, el inicio del cliente API también es asíncrono. Esto da como resultado que el cliente en ExampleService no esté definido cuando se construye demasiado pronto. El objetivo es mantener los Servicios lo más autónomos posible.
class ApiClientService { client: AxiosInstance async init() { // gets called asap on launch await sessionService.init() this.client = axios.create({ baseURL: config.host, timeout: 1000, headers: { Authorization: `token ${sessionService.getToken()}` } }) } getClient() { return this.client } ... } class ExampleService { private client = apiService.getClient() async doSomething() { return this.client.get('/something') } }