Skip to content
Advertisement

axios error react interceptors request is not a function

i have a configuration with axios i am testing a feature to receive a list of students from an api, the problem is that it sends me an error:

TypeError: constants_api_constants__WEBPACK_IMPORTED_MODULE_1_.default.interceptors.request is not a function

For my axios configuration I use:

const options.GET_ALL_STUDENTS = {
  method: "GET",
  url: "/Student",
}
const BASE_API_URL = "https://localhost:7072/api";
const api = axios.create({
  baseURL: `${BASE_API_URL}`,
});

const getStudents = () => {
  return api.interceptors.request(options.GET_ALL_STUDENTS).use(
    function request(success) {
      return success;
    },

    function error(err) {
      return err;
    },
  );
};

How I resolve my promise, (without interceptor this work fine):

function* fetchStudents() {
  try {
    const result1 = yield call(getStudents);
    const studentList = createStudentListAdapter(result1.data);
    yield put(fetchStudentsSuccess(studentList));
  } catch (error) {
    yield put(fetchStudentsFailure());
  }
}

Advertisement

Answer

Interceptors are used to intercept any request/response before it goes to try/catch.

const getStudents = async () => {
  try {
    const res = await api(options.GET_ALL_STUDENTS);
    // logic
  } catch (e) {
    // handle error
  }
};

Interceptor

api.interceptors.request.use(
  (request) => {
    console.debug("Request", request.url);
    return request;
  },
  (error) => {
    console.debug("Request Failed", error.request.data.message);
    return Promise.reject(error);
  },
);
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement