一个$http的请求然后数据返回的是success:{ data:{ data:{} //这里正常的情况下是有数据的。为了以防万一这里如果为null的话要怎么进行兼容的处理 }}这里是一个简单的处理方法。 this.$http({ //调用接口 method:'POST', async:true, headers: {'Accept': '*/*'}, url:this.askListUrl, //this指data data:this.transMyResData //向后台发送的数据 }).then(function(response){ //接口返回数据 if(response.data.data == null){ // 为空的处理 return ""; }else { // 不为空的处理 that.questions = response.data.data.list; that.total = that.questions; loading.close(); if(response.data.data.total>=0){ that.transMyResData.total=response.data.data.total; that.total_3 = response.data.data.total; }else{ that.$message.error('失败'); } } },function(error){ loading.close(); that.$message.error('网络连接失败') })请教各位怎么才更规范一点。
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
一般会和后端人员配合,通过code字段判断后端返回的数据,例如:
{
code:100
data:null,
message:'没有相关数据'
}
正常的格式:
{
code:0
data:data,
message:''
}
慕码人8056858
TA贡献1803条经验 获得超6个赞
一般来说不会返回 null
的,会做一个约定,通过错误码和信息来做一个判断。
正常情况下返回的数据会是两种样子:
// object 类型:
data: {...}
// array 类型:
data: [...]
array 类型好搞,直接空数组就完事了;
但是如果 object 要表示 空/此查询条件无结果 这类语义,可能还真只能 null 来表示,这种是业务逻辑上的空,错误码一般表示处理逻辑的错误,所以要分情况:
如果是处理逻辑错误(用户层输入参数非法/状态异常)那么靠 code 就可以做策略了,然后要记日志,前端提示错误;
如果是业务逻辑错误(无对应查询条件的结果)那么只能检查 data === null,然后做对应处理。
添加回答
举报
0/150
提交
取消