代码如下,其中有三个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 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
account如果不是空呢(null||undefined)?上面和下面实现的功能不一样。下面只能说account没值,然后报错。但是当userName是空串的时候,无法做出应对。UncaughtTypeError:Cannotreadproperty'userName'ofundefinedUncaughtTypeError:Cannotreadproperty'userName'ofnull
添加回答
举报
0/150
提交
取消