在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ 請(qǐng)求接口返回?cái)?shù)據(jù)的為null,怎么去處理?這里是指兼容的一個(gè)處理。

請(qǐng)求接口返回?cái)?shù)據(jù)的為null,怎么去處理?這里是指兼容的一個(gè)處理。

一個(gè)$http的請(qǐng)求然后數(shù)據(jù)返回的是

success:{
   data:{
       data:{} //這里正常的情況下是有數(shù)據(jù)的。為了以防萬(wàn)一這里如果為null的話要怎么進(jìn)行兼容的處理
    }
}

這里是一個(gè)簡(jiǎn)單的處理方法。

        this.$http({           //調(diào)用接口
          method:'POST',
          async:true,
          headers: {'Accept': '*/*'},
          url:this.askListUrl,  //this指data
          data:this.transMyResData  //向后臺(tái)發(fā)送的數(shù)據(jù)
        }).then(function(response){  //接口返回?cái)?shù)據(jù)
          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('網(wǎng)絡(luò)連接失敗')
        })

請(qǐng)教各位怎么才更規(guī)范一點(diǎn)。

回答
編輯回答
有你在

一般會(huì)和后端人員配合,通過(guò)code字段判斷后端返回的數(shù)據(jù),例如:

{
    code:100
    data:null,
    message:'沒(méi)有相關(guān)數(shù)據(jù)'
}

正常的格式:

{
    code:0
    data:data,
    message:''
}
2017年6月26日 16:34
編輯回答
怪痞

一般來(lái)說(shuō)不會(huì)返回 null 的,如 @yhlben 所說(shuō),會(huì)做一個(gè)約定,通過(guò)錯(cuò)誤碼和信息來(lái)做一個(gè)判斷。

正常情況下返回的數(shù)據(jù)會(huì)是兩種樣子:

// object 類型:
data: {...}

// array 類型:
data: [...]

array 類型好搞,直接空數(shù)組就完事了;
但是如果 object 要表示 空/此查詢條件無(wú)結(jié)果 這類語(yǔ)義,可能還真只能 null 來(lái)表示,這種是業(yè)務(wù)邏輯上的空,錯(cuò)誤碼一般表示處理邏輯的錯(cuò)誤,所以要分情況:

如果是處理邏輯錯(cuò)誤(用戶層輸入?yún)?shù)非法/狀態(tài)異常)那么靠 code 就可以做策略了,然后要記日志,前端提示錯(cuò)誤;
如果是業(yè)務(wù)邏輯錯(cuò)誤(無(wú)對(duì)應(yīng)查詢條件的結(jié)果)那么只能檢查 data === null,然后做對(duì)應(yīng)處理。

2017年2月16日 20:59