错误处理
错误处理
当请求失败时,可以对错误进行处理。
校验状态抛出错误
可以设置校验状态,自定义抛出错误的状态码。
ts
import axios from 'axios-miniprogram';
axios('https://api.com/test', {
validateStatus(status) {
return status === 200;
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
import axios from 'axios-miniprogram';
axios('https://api.com/test', {
validateStatus(status) {
return status === 200;
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
用 catch
处理错误
可以处理不同类型的错误。
ts
import axios from 'axios-miniprogram';
axios('https://api.com/test')
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
});
import axios from 'axios-miniprogram';
axios('https://api.com/test')
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
});
用 errorHandler
处理错误
可以使用 errorHandler
处理不同类型的错误。
ts
import axios from 'axios-miniprogram';
axios('https://api.com/test', {
errorHandler(error) {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
import axios from 'axios-miniprogram';
axios('https://api.com/test', {
errorHandler(error) {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
},
})
.then((response) => {
// 成功之后做些什么
})
.catch((error) => {
// 失败之后做些什么
});
全局错误处理
可以设置全局错误处理,对每个请求生效。
ts
import axios from 'axios-miniprogram';
// 全局错误处理
axios.defaults.errorHandler = (error) => {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
};
import axios from 'axios-miniprogram';
// 全局错误处理
axios.defaults.errorHandler = (error) => {
if (axios.isAxiosError(error)) {
// 响应错误
const {
// 错误消息
message,
// 请求配置
config,
// 请求任务,也就是请求函数返回的结果
request,
// 响应体
response,
} = error;
if (response.isFail) {
// 平台或适配器错误
} else {
// 使用 `validateStatus` 自定义抛出的错误
}
} else if (axios.isCancel(error)) {
// 取消请求
} else {
// 其他错误
}
return Promise.reject(error);
};