为了账号安全,请及时绑定邮箱和手机立即绑定

急求!!!!关于ajax错误处理各位有什么建议?

急求!!!!关于ajax错误处理各位有什么建议?

慕无忌1623718 2019-07-28 12:27:06
代码如下,其中有三个if判断,来检查数据是否符合预期,让我困惑的是,这些检查是否有必要?我是不是应该拿掉这些判断,让其catch自行捕获?哪种方式更合理些?或许还有更合理的做法?希望有人能够指点下,谢谢asyncloadUserInfo(){try{const{data}=awaitgetUserInfo()if(data.status!==CONFIG.SUCCESS_CODE){return}if(!data.data.length){return}constaccount=util.getAccountById(data.data)if(!account||!account.userName||!account.userPhoneNo||!account.merchantName){return}this.setState({userName:account.userName,userPhoneNo:account.userPhoneNo,merchantName:account.merchantName,})}catch(err){alert('用户信息数据发生错误')}}去掉检查asyncloadUserInfo(){try{const{data}=awaitgetUserInfo()constaccount=util.getAccountById(data.data)this.setState({userName:account.userName,userPhoneNo:account.userPhoneNo,merchantName:account.merchantName,})}catch(err){alert('用户信息数据发生错误')}}
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

account如果不是空呢(null||undefined)?
上面和下面实现的功能不一样。下面只能说account没值,然后报错。但是当userName是空串的时候,无法做出应对。UncaughtTypeError:Cannotreadproperty'userName'ofundefinedUncaughtTypeError:Cannotreadproperty'userName'ofnull
                            
查看完整回答
反对 回复 2019-07-28
?
HUH函数

TA贡献1836条经验 获得超4个赞

与@linong的看法不同我觉得只需要下面的ajax请求即可;如果account不是空,而是{},那么足以说明ajax请求是正常的,不正常的是服务器的数据这时候也不用报错,可以在使用userName,userPhoneNo,merchantName数据时加上配置
姓名:{this.state.userName||'用户名为空'}
//userPhoneNo,merchantName略
补充
this.setState({
userName:account.userName||'默认值',
userPhoneNo:account.userPhoneNo||'默认值',
merchantName:account.merchantName||'默认值',
})
也可以如此吧,看使用场景
                            
                            
查看完整回答
反对 回复 2019-07-28
  • 2 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消