- 根据业务逻辑需要,按返回的数据code来决定哪些需要全局拦截,那么全局忽略,开发给具体请求具体处理
- 出入具体的参数,来决定是否需要全局拦截
var IGNOR_INTERCEPT_CODES=[300,400,500...];
function wx_request(url,autoHandleFlag=true){
return new Promise((resolve, reject) => {
wx.request({
url: API_URL + url,
success: function (res) {
if (res.data.code == 200) {
resolve({
code:res.data.code,
data:res.data,
msg:'',
});
}
else {
if(!autoHandleFlag){
resolve({
code:res.data.code,
data:null,
msg:res.data.msg
});
}else{
if(IGNOR_INTERCEPT_CODES.indexOf(res.data.code)!==-1){
resolve({
code:res.data.code,
data:null,
msg:res.data.msg
});
}else{
reject(res.data.msg)
}
}
}
},
fail: function (e) {
if(!autoHandleFlag){
resolve({
code:-1,
data:null,
msg:e,
});
}else{
// 此处处理系统级别的错误,也可以按消息类型决定是否直接reject还是resovle返回数据给调用方
reject('request fail')
}
}
})
}).catch(err => {
console.warn('error for debugger')
});
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…