繁体   English   中英

axios 请求拦截器错误处理程序中错误对象的形状是什么?

[英]What is the shape of error object inside axios request interceptor error handler?

技术说明:由于 axios 对 Node 和浏览器使用不同的库/机制,这个问题只涉及axios@0.18.0 Node.js用法。

我可以为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的请求错误处理程序中的代码,后者代表什么呢?

我认为此源代码可能对您有所帮助:

创建错误.js

它看起来像Error 的一个实例,所以它有error.message ,并且axios添加了error.configerror.codeerror.requesterror.response ,每个enhanceError.js

当请求拦截器的错误处理程序中描述的回调被触发时,该错误对象的形状是什么?

错误处理程序(.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 对象,如github 上 axios 文档处理错误部分所述

  • message : 错误消息文本。
  • response :响应对象(如果收到),如上一节所述。 在响应中,您将拥有数据、状态和标头对象
  • request :在浏览器上运行时的实际 XMLHttpRequest 对象或node.js 中的 http.ClientRequest 实例。
  • config :原始请求配置。

请求错误处理程序中的错误在后面的代码中代表什么?

这将是您的 axios 拦截器绕过的请求的错误响应

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM