发布于 4年前

axios捕获错误的两种方式:async/await以及promis

以下为axios捕获错误异常的两种方式:

  • 基于async/await机制
  • 基于promis机制

axios基于async/await捕获错误异常

下面的脚本必须写在async函数里

try {
    const response = await axios.get('https://your.site/api/v1/bla/ble/bli');
    console.log(response);
} catch (error) {
    // Error
    if (error.response) {
        /*
         * 错误情况一:请求有返回响应,但响应码不是2xx等不正确的状态码。
         */
        console.log(error.response.data);
        console.log(error.response.status);
        console.log(error.response.headers);
    } else if (error.request) {
        /*
         * 错误情况二:请求没有收到响应, 再浏览器环境下`error.request`是XMLHttpRequest实例,
         * 在Node.js环境下,`error.request`是一个http.ClientRequest实例。
         */
        console.log(error.request);
    } else {
        // 其他情况触发错误
        console.log('Error', error.message);
    }
    console.log(error);
}

axios基于promis捕获错误异常

axios.get('https://your.site/api/v1/bla/ble/bli')
    .then((response) => {
        console.log(response);
    })
    .catch((error) => {
        // 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) {
            /*
             * 错误情况二:请求没有收到响应, 再浏览器环境下`error.request`是XMLHttpRequest实例,
             * 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 and triggered an Error
            console.log('Error', error.message);
        }
        console.log(error.config);
    });
©2020 edoou.com   京ICP备16001874号-3