在IM中的IM在拦截器中时如何忽略回调?

时间:2020-09-22 22:19:01

标签: javascript axios

我使用axios拦截器来获取错误。在某些情况下我出错了,我不想返回到catch或回调。

我如何在axios中做到这一点?因为如果我不返回值,它将转到next,但是如果我返回Promise.reject,它将转到catch

我想在拦截器出错时不要继续前进到回调。

codesandbox.io

import axios from "axios";

axios.interceptors.response.use(
  (response) => response,
  (error) => {
    console.log({ error });

    // do not return to the catch/then in foo please! <-- HOW?

    return Promise.reject(error);
  }
);

const foo = () => {
  axios
    .post("https://httpstat.us/500")
    .then((r) => {
      console.log({ r });
    })
    .catch((err) => {
      console.log({ err });
    });
};

foo();

1 个答案:

答案 0 :(得分:0)

您可以在错误函数中返回可解决的承诺

axios.interceptors.response.use(
  (response) => response,
  (error) => {
    console.log({ error });

    return Promise.resolve();
  }
);