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

请求接口返回数据的为null,怎么去处理?这里是指兼容的一个处理。

请求接口返回数据的为null,怎么去处理?这里是指兼容的一个处理。

撒科打诨 2019-03-14 18:15:53
一个$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:''

}


查看完整回答
反对 回复 2019-03-19
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

一般来说不会返回 null 的,会做一个约定,通过错误码和信息来做一个判断。

正常情况下返回的数据会是两种样子:

// object 类型:

data: {...}


// array 类型:

data: [...]

array 类型好搞,直接空数组就完事了;

但是如果 object 要表示 空/此查询条件无结果 这类语义,可能还真只能 null 来表示,这种是业务逻辑上的空,错误码一般表示处理逻辑的错误,所以要分情况:


如果是处理逻辑错误(用户层输入参数非法/状态异常)那么靠 code 就可以做策略了,然后要记日志,前端提示错误;

如果是业务逻辑错误(无对应查询条件的结果)那么只能检查 data === null,然后做对应处理。


查看完整回答
反对 回复 2019-03-19
  • 2 回答
  • 0 关注
  • 2613 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信