我会给你更实际的用例,我在现实世界的项目中使用过。我通常使用request interceptor与令牌相关的人员 ( accessToken, refreshToken),例如,令牌是否未过期,如果是,则使用 refreshToken 更新它并保持所有其他调用,直到它解决为止。但我最喜欢的是 axios response interceptors,您可以在其中放置您的应用程序全局错误处理逻辑,如下所示:
httpClient.interceptors.response.use(
  (response: AxiosResponse) => {
    // Any status code that lie within the range of 2xx cause this function to trigger
    return response.data;
  },
  (err: AxiosError) => {
    // Any status codes that falls outside the range of 2xx cause this function to trigger
    const status = err.response?.status || 500;
    // we can handle global errors here
    switch (status) {
      // authentication (token related issues)
      case 401: {
        return Promise.reject(new APIError(err.message, 409));
      }
      // forbidden (permission related issues)
      case 403: {
        return Promise.reject(new APIError(err.message, 409));
      }
      // bad request
      case 400: {
        return Promise.reject(new APIError(err.message, 400));
      }
      // not found
      case 404: {
        return Promise.reject(new APIError(err.message, 404));
      }
      // conflict
      case 409: {
        return Promise.reject(new APIError(err.message, 409));
      }
      // unprocessable
      case 422: {
        return Promise.reject(new APIError(err.message, 422));
      }
      // generic api error (server related) unexpected
      default: {
        return Promise.reject(new APIError(err.message, 500));
      }
    }
  }
);