Когда вызывается обработчик ошибок перехватчика Axios? - PullRequest
0 голосов
/ 02 ноября 2018

Я настроил перехватчик axios с целью установки глобальной переменной загрузки в значение true, когда ни один запрос не получил ответа. В моем приложении это предотвратит отправку пользователем формы, которая во многих случаях может привести к ошибкам, поскольку все данные еще не обработаны.

Код:

var numberOfAjaxCAllPending = 0;
// Add a request interceptor
window.axios.interceptors.request.use(function (config) {
    numberOfAjaxCAllPending++;
    console.log('Request:  ---- ' + numberOfAjaxCAllPending);
    return config;
}, function (error) {
    return Promise.reject(error);
});

// Add a response interceptor
window.axios.interceptors.response.use(function (response) {
    numberOfAjaxCAllPending--;
    console.log('Pending Response (response): ---- ' + numberOfAjaxCAllPending);
    return response;
}, function (error) {
    numberOfAjaxCAllPending--;
    console.log('Pending Response (error): ---- ' + numberOfAjaxCAllPending);
    return Promise.reject(error);
});

global.loading = numberOfAjaxCAllPending > 0;

Когда запрос сделан, счетчик ожидания увеличивается, а ответ возвращается в уменьшенном виде. Значение больше 0 означает, что запросы все еще находятся на рассмотрении.

Я немного озадачен ошибочной частью обещания по каждому из них. Я должен добавить уменьшение в ожидании ошибки ответа, чтобы он мог перехватывать не 200 ответов.

С запросом, я предполагаю, что в случае ошибки запрос не будет отправлен, и я не буду ожидать ответа. Это правильно?

1 Ответ

0 голосов
/ 02 ноября 2018

При перехватчике запроса вам также нужно уменьшить значение, если вы не хотите ждать ответа.

Функция в перехватчике запроса будет вызвана до того, как она выполнит запрос.

Функция в ответном перехватчике будет вызвана после получения ответа.

Тем не менее, если возникает ошибка после вызова перехватчика запроса, вам нужно уменьшить значение. Если ошибка возникла до перехвата запроса, вам не нужно уменьшать ее.

Это зависит только от того, когда произошла ошибка.

...