关于javascript:关于接口返回null的假设方案

33次阅读

共计 679 个字符,预计需要花费 2 分钟才能阅读完成。

问题
在日常和后端接口对接的过程中,常常会遇到接口字段存在 null 的值,比方

{
   code:0,
   msg:'success',
   result:null
}

而这个时候 咱们再获取 result.userInfo 的时候,JavaScript 就会报错。所以前端不光要校验接口状态 code 是不是为 0,同时还要校验 result 是否是预期的对象类型。
也就是从原来的

if (res.data.code === 0)

改为

if (res.data.code === 0&&res.data.result)

特地是当咱们预期数据结构是

{
  code:0,
  result:{
    userInfo:{userName:''}
  }
}

为了顺利的获得 userName 这个值 咱们须要做三次判断

let userName = ''
if (res.data.result&&res.data.result.userInfo&&res.data.result.userInfo.userName)
 userName = res.data.result.userInfo.userName

很让人头疼
而且 98% 的后端都不会乐意依照预约的数据结构返回
就是导致 object/string/number/array 都有可能是 null
及时你最终战胜了后端,许可了依照格局返回,
然而究竟还是接口返回不可信

于是我料想了一个计划次要解决那么多的 if 判断,将接口返回格式化成咱们想要的样子

通过保留根底格局,而后将接口返回合并至根底数据的形式

这样做的益处是

  1. 齐全保留了预期的数据结构
  2. debug 代码的时候,能够清晰直观的看到以后接口返回的数据格式,加强可读性
  3. 不便做接口 mock 拓展

正文完
 0