关于js 中 try catch用法
try…catch语法,简单来说就是用来捕获异常的,我就简述一下我遇到的问题,或许你可以从我遇到的问题中明白他的作用。当使用vuex在actions发请求时,这个接口不仅可以添加购物车数据,同时也可更新产品的数量,我就在更新产品数量的地方出现了问题,......
try…catch语法,简单来说就是用来捕获异常的,我就简述一下我遇到的问题
当使用vuex在actions发请求时,这个接口不仅可以添加购物车数据,同时也可更新产品的数量,我就在更新产品数量的地方出现了问题,
先说说我的问题:点击增加/减少产品数量,第一次点击+,确实发请求了,但是数据并没有发生改变,第二次点击数值直接变成12,跳过了展示11的过程。于是我开始排查代码。。。。。
利用try...catch可捕获代码异常,当然,我的代码并没有报错,但是使用了try...catch之后确实功能正常了。所以我觉得我们要养成使用try...catch的习惯,用在哪?
当后台报错时,你可以用try...catch捕获错误,缩小检查范围。
在发请求时,可使用,因为发请求时的
其实就是给try...catch用的,一旦数据没回来或者异常,能较准确的告诉你哪里出了什么问题,提高编码效率。try...catch在组件中使用时,我们是需要知道请求的结果的,所以写了一个判断,让try...catch提供给我们报错的详细信息
例如:我进行路由跳转之前要发请求,请求成功时,再路由跳转,否则报错,这时,就用try...catch包裹这个请求,这样如果出现报错,那一定是请求出现了问题,所以各位尽量用。
这个try...catch我个人理解,目前它比捕获异常作用还大的就是能够保证代码能够顺序进行,减少bug,虽然不报错,但是有些逻辑问题存在,一旦使用了就没事了。
怎么用?仅仅是包裹吗?
首先我们要知道
this.$store.dispatch("XXXXX")//这个的返回值是什么?是promise对象
如何证明?
你可以let result=this.$store.dispatch("XXXXX")//打印一下试试
既然是一个promise对象,那就得用await来等待,而await和async是CP,所以要配合使用,仅看画框的即可。
唉,虽然写起来比较麻烦,但是确实能缩小检查错误的范围,具体详细的介绍或许你可以拿出一点时间去学习一下es6新语法,在那里你可以获得更多更详细更全面的知识体系,诸君加油!
更多推荐
所有评论(0)