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);
});

版权声明:著作权归作者所有。

相关推荐

ES6中async的使用案例

在项目中有时会遇到异步操作的问题,async就是解决异步操作的终极操作。我会以终极三问(what,why,when)的形式来说明什么是async。由于这是第一篇文章不知道怎么写,有很大部分是借鉴阮一峰老的原文,事例将会从我的项目中摘取。 async是什么? 官方例子 官方文档 async相当于对Generator 函数的一个语法糖const fs = require

JavaScript Async/Await和Promise的对比

从Node 8 LTS开始,Node完全支持Async/Await。这里通过示例的方式对比Async/Await和Promise。简单介绍下Async/Await:Async/Await是一种新的编写异步代码的方式。其他方式是回调或者Promise。Async/Await实质是构建在Promise之上,它不能用于纯的回调或者Node.js的回调中。和Promise一样,Async/Await是非阻

Node.js Async/Await简单的示例

转自:https://gist.github.com/wesbos/1866f918824936ffb73d8fd0b02879b4const axios = require('axios'); function getCoffee() { return new Promise(resolve => { setTimeout(() => resolve('☕')

Ubuntu 16.04安装nginx的正确方式

Nginx预编译包提供了两种版本的安装:stable(稳定版)和mainline(主线版)。stable版本Nginx的安装1、添加nginx的签名密钥Ubuntu需要验证nginx的仓库签名,为了避免安装nginx出现缺失PGP key的警告,有必要把nginx包和仓库的签名密钥添加到apt的密钥环。下载nginx包和仓库的签名密钥:wget http://nginx.org/keys/ngin

Android Studio 3报Error:CreateProcess error=216错误的两种情况

当配置的JDK版本和Android Studio 3所要求的JDK版本不符合时会报错误:CreateProcess error=216错误。它分为两种情况:情况一:配置的JDK版本低于JDK 8当配置的JDK版本低于JDK8会报类似以下的错误:Error:CreateProcess error=216, 该版本的 %1 

JavaScript ES 2017: 通过示例学习Async/Await

预备知识ES 2017新增了Asynchronous函数。 在JavaScript中,Async函数本质上是一种处理异步代码的比较简洁的方法。 为了理解这些是什么,以及它们是如何工作的,我们首先需要了解Promise。如果你不知道Promise是什么,那么你应该先阅读我发表的关于Promise的这篇文章。 在理解Promise之前,你是不会理解JavaScr