在 js 中如何中止代码往下执行并且不报错

发布于 2022-09-11 22:16:09 字数 588 浏览 10 评论 0

在 vue 中封装公共的 axios 配置
axios 请求响应拦截

axios.interceptors.response.use((res) => {
  return res
}, (err) => {
  //接口请求失败后,直接返回失败的 Promise
  return Promise.reject(error) 
})

axios(config).then( res => {
    // 请求成功
    if(res.code === 200){
        
    }else{
        // 报个错,所有的错误让下面的 catch 统一处理
        throw res
    }

}).catch( err => {
    // 
    alert(err.message)
    //在 catch 中使用 throw,如果catch后面还有then,则只会执行到这里的catch,后面的then不再执行
    //这个解决的我的问题,但问题是 throw 会在控制台中输出错误信息,我并不希望它输出错误信息,也不想让它继续往下执行
    throw err
})

大佬们帮忙看下吧,困扰了好长时间了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放低过去 2022-09-18 22:16:09
axios(config).then( res => {
    // 请求成功
    if(res.code === 200){
        
    }else{
        // 报个错,所有的错误让下面的 catch 统一处理
        throw res
    }

}).catch( err => {
    // 
    alert(err.message)
    //在 catch 中使用 throw,如果catch后面还有then,则只会执行到这里的catch,后面的then不再执行
    //这个解决的我的问题,但问题是 throw 会在控制台中输出错误信息,我并不希望它输出错误信息,也不想让它继续往下执行
    throw err
})
.then(...)
.then(...)
.thne(...)
.catch(err => {
    // 在最后再加一个 catch ,
    // 不要 throw ,阻止错误信息
})
只有一腔孤勇 2022-09-18 22:16:09

为啥不用 Promise.reject 呢?如果你 catch 住错误后,还想往下传给别的 catch. 就return Promise.reject()就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文