Какова форма объекта ошибки в обработчике ошибок перехватчика запросов Axios? - PullRequest
0 голосов
/ 05 февраля 2019

Техническое примечание: Поскольку axios использует различные библиотеки / механизмы для узла и браузера, этот вопрос касается только Node.js использования axios@0.18.0.

Iможет установить следующий перехватчик для библиотеки axios (https://github.com/axios/axios#interceptors):

// Add a request interceptor
axios.interceptors.request.use(function (config) {
    // Do something before request is sent
    return config;
  }, function (error) {
    // Do something with request error
    //
    // I am asking about this error handler and this error object
    //
    return Promise.reject(error);
  });

// Add a response interceptor
axios.interceptors.response.use(function (response) {
    // Do something with response data
    return response;
  }, function (error) {
    // Do something with response error
    return Promise.reject(error);
  });

Когда сработает обратный вызов, описанный в обработчике ошибок для перехватчика запроса, и что это такоеформа этого объекта ошибки?

PS Я вижу, что есть этот код, описывающий работу с ошибками в axios:

axios.get('/user/12345')
  .catch(function (error) {
    if (error.response) {
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      //
      //
      //  !!!! This is a request error handler !!!
      //
      //
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
      console.log(error.request);
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', error.message);
    }
    console.log(error.config);
  });

Что будет error внутри обработчика ошибок запроса в последнем коде?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Когда срабатывает обратный вызов, описанный в обработчике ошибок для перехватчика запросов, и какова форма этого объекта ошибки?

обработчик ошибок (предложение .catch) будет запущен командойперехватчик, когда он «отклоняет» обещание, как в этой части вашего кода:

axios.interceptors.response.use(function (response) {
    // Do something with response data
    return response;
  }, function (error) {
    // Do something with response error
    return Promise.reject(error); // <---- HERE
  });

Форма объекта ошибки axios - это объект JSON, как указано в разделе обработки ошибок axiosдокументы на github

  • message : текст сообщения об ошибке.
  • response : объект ответа (если получен) какописано в предыдущем разделе.Внутри ответа у вас будут объекты данных, статуса и заголовков
  • request : фактический объект XMLHttpRequest при запуске в браузере или экземпляр http.ClientRequest в node.js.
  • config : исходная конфигурация запроса.

Что будет представлять ошибка внутри обработчика ошибок запроса в последнем коде?

Это будет ответ об ошибке на запрос, обойденный вашим перехватчиком axios

0 голосов
/ 11 февраля 2019

Я думаю, что этот исходный код может вам помочь:

createError.js

Это похоже на экземпляр Ошибка , поэтому он имеетerror.message и axios добавляет error.config, error.code, error.request и error.response, за EnhanceError.js .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...