响应码报错的优化写法
在接口调用时,根据不同的响应码返回给用户相应的提示;通常用简单的if else 就能实现;
如下:
this.orderService.getOrder(id)
.subscribe((res) => {
if (res.code == '00000') {
<!-- 响应正确的业务代码 -->
}else if (res.code == '00001') {
alert("报错原因A")
}else if (res.code == '00002') {
alert("报错原因B")
}else if (res.code == '00003') {
alert("报错原因C")
}else if (res.code == '00004') {
alert("报错原因D")
}else if (res.code == '00005') {
alert("报错原因E")
}else if (res.code == '00006') {
alert("报错原因F")
}else {
alert("统一通用报错")
}
}, (error) => {
console.error('请求异常');
});
}
这是一个很常见也很简单的写法,但是当响应码的情况越来越多时会出现代码冗余的缺点;
当然这里可以用switch来改写,但是还是不够简洁;
所以推荐以下写法,核心思想是利用Object类型的hasOwnProperty()方法。
const error_code = {
'00001': '报错原因A',
'00002': '报错原因B',
'00003': '报错原因C',
'00004': '报错原因D',
'00005': '报错原因E',
'00006': '报错原因F'
}
this.orderService.getOrder(id)
.subscribe((res) => {
if (res.code == '00000') {
<!-- 响应正确的业务代码 -->
}else if (this.error_code.hasOwnProperty(res.code)) {
alert(this.error_code[res.code])
}else {
alert("统一通用报错")
}
}, (error) => {
console.error('请求异常');
});
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!