繁体   English   中英

Axios 拦截器和 Try/Catch 错误处理

[英]Axios Interceptors and Try/Catch error handling

在我的 React Native 应用程序中,我在try/catch块中处理对 api 的每次调用,并且还使用axios interceptors来处理我从服务器获得的错误。

问题是同时使用它们似乎是多余的,因为我已经使用axios interceptors处理错误并且不需要catch块。 然而,删除try/catch块会导致UnhandledPromiseRejectionWarning

try/catch api 调用:(将删除 CONSOLE.LOG

// Request to the server
const handleSubmit = async () => {
  try {
    const response = await axis.post('API_URL',{BODY});
    return response.data
  } catch (error) {
    console.log(error);
  }
};

axios interceptors

// Intercept on response
axios.interceptors.response.use(
  res => {
    return res;
  },
  err => {
    // Error handling logic
    // ....................

    return Promise.reject(err);
  },
);

有什么方法可以让我继续在我的函数中使用try/catch并仍然使用 axios axios interceptors处理错误,或者只使用axios interceptors并避免UnhandledPromiseRejectionWarning

你可能已经明白了这一点,但我会尝试提供一些意见。

如果你像return Promise.reject(err)那样做,那么err object 将被发送到你的catch方法。 如果没有catch ,错误将被抛出到控制台。

如果您只是使用return err或任何其他值,该值将返回到thenawait方法/变量。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM