Axios cancelToken,使取消的请求静默失败

达米斯丹迪

我正在创建一个输入表单,该表单使用以下方法验证帐号onChange react-hook-form

 useEffect(() => {
    if (account_number.length >= 6) {
      verifyAccountNumber();
    }
    return () => source.cancel('Request canceled!');
  }, [account_number, bank_code, verifyAccountNumber]);

verifyAccountNumber函数在account_numberbank_code状态更改时运行

这是实际功能

const verifyAccountNumber = useCallback(async () => {
    setAccountLoading(true);
    setAccountError({ status: false, serverError: false });
    try {
      const account = await restAPI.get(
        `/misc/verify-account/${account_number}/${bank_code}`,
        { cancelToken: token }
      );
      setAccount(account.data.data.data.account_name);
    } catch (err) {
      console.log(err);
      if (!axios.isCancel(err)) {
        setAccountError({
          status: true,
          serverError: err.response.data.serverError,
        });
      }
    }
    setAccountLoading(false);
  }, [account_number, bank_code]);

有没有一种方法可以防止try catch块将已取消的请求捕获为错误?因为它弄乱了我的UI / UX

约瑟夫·维特曼

如果要防止捕获取消错误,则必须重新抛出该错误。

if (axios.isCancel(err)) { 
    throw err 
} else { 
    setAccountError(...) 
} 

(回答评论,以记录该问题的解决)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何取消以前的axios请求?

来自分类Dev

Axios取消令牌取消每个请求

来自分类Dev

React 中的 Axios 请求失败

来自分类Dev

axios 多部分请求失败

来自分类Dev

请求失败,状态码为429 Axios

来自分类Dev

Axios发布请求失败并显示404

来自分类Dev

Axios 请求雅虎天气 API 失败

来自分类Dev

取消使用Axios的网址?

来自分类Dev

Axios:如何拦截和响应axios请求

来自分类Dev

Vuejs Axios请求

来自分类Dev

无尽的 Axios 请求

来自分类Dev

响应新的 axios 请求

来自分类Dev

在 React Hooks useEffects 清理失败中取消 Axios REST 调用

来自分类Dev

axios获取请求错误:请求失败,状态码为504

来自分类Dev

如何在axios中取消/中止ajax请求

来自分类Dev

取消使用中的Axios请求效果未运行

来自分类Dev

如何通过钩子在React Redux中取消Axios请求?

来自分类Dev

通过Reactjs中的axios取消我的诺言POST请求

来自分类Dev

使用React Router Switch时在React中取消Axios请求

来自分类Dev

无法在 Axios 中取消 POST

来自分类Dev

请求失败后可观察到的catchError(axios / redux)

来自分类Dev

在ReactJs和Laravel中使用Axios时请求失败

来自分类Dev

测试Axios请求的标头

来自分类Dev

从axios获取请求返回数据

来自分类Dev

对axios请求使用动态参数

来自分类Dev

地图中的顺序axios请求

来自分类Dev

Axios GET请求到JSON

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED

来自分类Dev

axios请求错误:与Heroku ECONNREFUSED