在redux-saga中,可以使用try-catch语句来捕获axios请求的错误响应。当axios请求发生错误时,可以在catch块中获取错误响应。
以下是在redux-saga中如何在catch方法中获得axios错误响应的步骤:
import { call, put, takeEvery } from 'redux-saga/effects';
import axios from 'axios';
function* fetchData(action) {
try {
const response = yield call(axios.get, 'https://api.example.com/data');
yield put({ type: 'FETCH_SUCCESS', payload: response.data });
} catch (error) {
yield put({ type: 'FETCH_ERROR', error: error.response.data });
}
}
function* watchFetchData() {
yield takeEvery('FETCH_DATA', fetchData);
}
export default function* rootSaga() {
yield all([
watchFetchData(),
// 其他监听器...
]);
}
在上述代码中,当FETCH_DATA
action被触发时,fetchData
saga函数会被调用。在try
块中,使用call
函数调用axios的GET方法来发起异步请求。如果请求成功,将响应数据通过put
函数派发一个FETCH_SUCCESS
action。如果请求失败,将错误响应数据通过put
函数派发一个FETCH_ERROR
action。
在catch块中,可以通过error.response.data
来获取axios错误响应的数据。这里假设错误响应的数据是一个对象,可以根据实际情况进行调整。
请注意,以上代码中并未提及具体的腾讯云产品和链接地址,因为在这个特定的问题中并不需要与云计算品牌商相关的内容。如果需要了解腾讯云相关产品和链接地址,请参考腾讯云官方文档或咨询腾讯云官方支持。
领取专属 10元无门槛券
手把手带您无忧上云