请求时,如何处理错误?
在React Native上使用Axios发出网络请求时,错误处理非常重要。下面是处理错误的几种常见方法:
try {
const response = await axios.get('https://api.example.com/data');
// 处理正常响应数据
} catch (error) {
if (error.response) {
// 请求已发出,但服务器响应状态码不在 2xx 范围内
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// 请求已发出,但没有收到响应
console.log(error.request);
} else {
// 发送请求时出错
console.log('Error', error.message);
}
}
axios.interceptors.response.use()
方法来拦截响应数据,对错误进行统一处理。axios.interceptors.response.use(
response => response,
error => {
if (error.response) {
// 请求已发出,但服务器响应状态码不在 2xx 范围内
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// 请求已发出,但没有收到响应
console.log(error.request);
} else {
// 发送请求时出错
console.log('Error', error.message);
}
return Promise.reject(error);
}
);
import { Alert } from 'react-native';
try {
const response = await axios.get('https://api.example.com/data');
// 处理正常响应数据
} catch (error) {
Alert.alert('Error', error.message);
}
import { AsyncStorage } from 'react-native';
try {
const response = await axios.get('https://api.example.com/data');
// 处理正常响应数据
} catch (error) {
// 记录错误日志
AsyncStorage.setItem('errorLog', error.message);
}
总结: 在React Native中使用Axios发出网络请求时,错误处理是非常重要的一部分。可以使用try-catch语句捕获异常,使用Axios的拦截器机制处理错误,显示错误信息给用户或者记录错误日志等方式来处理错误。这些方法可以帮助我们更好地定位、排查和解决网络请求中的错误。
领取专属 10元无门槛券
手把手带您无忧上云