axios拦截器在ReduxSaga中阻止了API调用。
创始人
2024-09-28 21:30:10
0

一种解决方法是使用Redux Saga的takeLatest或takeEvery方法来确保在拦截器发生之前调用API。这个方法会监听一个特定的action,当这个action被调用时,就会在之前的API请求完成之前中止之前的请求。

以下是一个示例代码:

import { takeLatest, call, put } from 'redux-saga/effects';
import axios from 'axios';

function* fetchData(action) {
  try {
    const response = yield call(axios.get, action.url);
    yield put({type: 'FETCH_DATA_SUCCESS', payload: response.data});
  } catch (error) {
    yield put({type: 'FETCH_DATA_ERROR', error});
  }
}

function* watchFetchData() {
  yield takeLatest('FETCH_DATA', fetchData);
}

export default watchFetchData;

在这个代码中,我们使用了takeLatest方法来监听FETCH_DATA的action。它会确保在新的FETCH_DATA被调用之后,之前的请求会被取消。这样我们就可以避免拦截器的干扰。

另一种解决方法是在拦截器中使用try-catch语句,以便捕获错误并分发到Redux中。以下是一个示例代码:

import axios from 'axios';

axios.interceptors.response.use(
  response => response,
  error => {
    const { message } = error;
    if (message === 'Network Error') {
      throw new Error('Network Error');
    }
    return Promise.reject(error);
  }
);

在这个代码中,我们通过throw new Error('Network Error')将错误抛出,这样就可以捕获并分发到Redux中进行处理。

相关内容

热门资讯

4分钟外挂!边锋微信小程序,四... 4分钟外挂!边锋微信小程序,四川途游辅助软件下载,2025新版(有挂方式)-哔哩哔哩1、下载好四川途...
第4分钟普及!家乡大二辅助,四... 第4分钟普及!家乡大二辅助,四川游戏家园通用辅助(其实有挂)-哔哩哔哩1、四川游戏家园通用辅助系统规...
第四分钟外挂!皮皮跑胡子修改器... 第四分钟外挂!皮皮跑胡子修改器,友友联盟免费辅助器,安装教程(有挂方法)-哔哩哔哩1、进入到友友联盟...
第8分钟详情!方片十三张源码,... 第8分钟详情!方片十三张源码,河洛杠次脚本开发(一贯有挂)-哔哩哔哩1)河洛杠次脚本开发辅助挂:进一...
1分钟外挂!传送屋激k有挂吗,... 1分钟外挂!传送屋激k有挂吗,兴动互娱辅助工具,解密教程(有挂分析)-哔哩哔哩1、超多福利:超高返利...
第6分钟解谜!山西扣点点智能辅... 第6分钟解谜!山西扣点点智能辅助器软件,决战卡五星辅助(一直是真的挂)-哔哩哔哩1、玩家可以在山西扣...
第五分钟推荐!开心泉州免费辅助... 第五分钟推荐!开心泉州免费辅助器,友友联盟免费辅助器(真是真的有挂)-哔哩哔哩1、完成开心泉州免费辅...
六分钟外挂!指尖四川小程序辅助... 六分钟外挂!指尖四川小程序辅助,八闽福建辅助,微扑克教程(存在有挂)-哔哩哔哩暗藏猫腻,小编详细说明...
第4分钟必备!潮汕木虱辅助下载... 第4分钟必备!潮汕木虱辅助下载,天天飞小鸡辅助(一贯存在有挂)-哔哩哔哩1、操作简单,无需注册,只需...
七分钟外挂!浙江宝宝游戏辅助下... 七分钟外挂!浙江宝宝游戏辅助下载,小程序牵手跑的辅助,安装教程(有挂解惑)-哔哩哔哩1)浙江宝宝游戏...