Я использую axios для реагирующего приложения, и я бы хотел зарегистрировать все вызовы axios, которые я делаю в любом месте приложения. Я уже использую один глобальный экземпляр axios через функцию create, и я могу зарегистрировать общий console.log. Однако мне бы хотелось получить больше информации, например, о вызываемой функции, параметрах и т.д.
Как регистрировать все вызовы axios из одного места в коде
Ответ 1
Лучший способ сделать это - перехватчик. Каждый перехватчик вызывается перед запросом/ответом. В этом случае регистратор-перехватчик будет.
axios.interceptors.request.use(request => {
console.log('Starting Request', request)
return request
})
axios.interceptors.response.use(response => {
console.log('Response:', response)
return response
})
или что-то в этом роде.
Хорошо, что вы используете новый экземпляр axios:
const api = axios.create({
timeout: 1000
})
Таким образом вы можете позвонить
api.interceptors[...]
Ответ 2
Вы можете попробовать обернуть функцию axios.request
в Promise.
function loggedRequest(config) {
return new Promise((resolve, reject) => {
axios.request(config)
.then((res) => {
// log success, config, res here
resolve(res);
})
.catch(err => {
// same, log whatever you want here
reject(err);
})
})
}
Ответ 3
Похоже, вы можете перехватить все запросы с помощью "перехватчика" и войти в него внутри: https://github.com/mzabriskie/axios#interceptors