axios不用catch的写法和使用catch的效果一样吗?

发布于 2022-09-07 20:36:26 字数 422 浏览 10 评论 0

1.官网上的写法是

axios.post(url, data)
    .then(response => {
        console.log(response);
    })
    .catch(error => {
           console.log(error);
    })

2.公司项目的写法是

axios.post(url, data)
    .then(response => {
        console.log(response);
    }, error => {
        console.log(error);
    })

本人小白,之前没怎么用过then和catch的写法,请问这两种写法是一样的效果吗?谢谢了

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

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

发布评论

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

评论(3

梦在夏天 2022-09-14 20:36:26

首先 这个不是 axios catch 的相关 而是关于 new Promise() 的then
阮一峰在 promise 文档写的很清楚

一般来说,不要在then方法里面定义 Reject 状态的回调函数(即then的第二个参数),总是使用catch方法。
// bad
promise
  .then(function(data) {
    // success
  }, function(err) {
    // error
  });

// good
promise
  .then(function(data) { //cb
    // success
  })
  .catch(function(err) {
    // error
  });
上面代码中,第二种写法要好于第一种写法,理由是第二种写法可以捕获前面then方法执行中的错误,也更接近同步的写法(try/catch)。因此,建议总是使用catch方法,而不使用then方法的第二个参数。
酸甜透明夹心 2022-09-14 20:36:26

没有什么谁好谁不好之说 主要看业务吧, 这样写可能容易看懂一些

axios.post(url, data)
    .then(response => {
        //处理逻辑
    }, error => {
        console.log('接口报错');
    })
    .catch(error=>{
        console.log('处理逻辑出错');
    })
axios.post(url, data)
    .then(response => {
        //处理逻辑
    })
    .catch(error=>{
        console.log('接口或处理逻辑出错');
    })
留蓝 2022-09-14 20:36:26

推荐官网的写法。

你们公司的写法和官网的差别在于。 你公司的写法无法catch第一个参数的异常。

也就是说

 console.log(response);

上面这块代码报错,是无法捕获的。

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