Axios-拦截器:阻止原始呼叫者进行进一步处理

时间:2020-05-29 12:19:10

标签: javascript if-statement promise axios xmlhttprequest

我的Axios实例有一个成功的响应拦截器。在某些情况下,我基本上想防止进一步执行.then().catch()

axiosExtended.interceptors.response.use(response => successHandler(response), error => errorHandler(error))

function successHandler(response) {
    const relativeRequestUrl = response.config.url;
    const relativeResponseUrl = trim(response.request.responseURL.replace(response.config.baseURL, ''), '/');

    if (relativeRequestUrl !== relativeResponseUrl) {
        // dont return anything to original caller. No then. No catch.
        router.push(relativeResponseUrl)
    }

    // get handled by original caller...
}

1 个答案:

答案 0 :(得分:0)

感谢@felixmosh:

instance.interceptors.response.use((response) => {
  if (someCondition(response) {
    return new Promise(() => {});
  }
  return response;
});