为什么 axios 在 catch 以后依然还在执行上面的逻辑?

作者站长头像
站长
· 阅读数 5

我想问为什么接口在 500 之后依然会进行跳转呢?难道不是 catch 然后弹窗报错了么?

const Api_Common = async (Path: string, Function: string, Params: any = {}) => await axios
    .post(`host`, Params)
    .then((data: Response) => data.data.Response)
    .catch((e) => {
        return ErrorState.dispatch(Publish(e.response.data.Error))
    })
const Api_Account_Register = (mobile: string, password: string, captcha: string) => Api_Common( Path, "account_register", {
    mobile: mobile,
    password: password,
    captcha: captcha
})
 Api_Account_Register( mobile, password, code )
            .then(() => messageApi.success('注册成功').then(() => navigate('/首页')))
回复
1个回答
avatar
test
2024-06-25

Api_Common确实catch了,但是catch没有继续把错误抛出,catch返回了一个新的promise,也就继续执行Api_Account_Register后面的then

MDN - Promise.catch

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容