官方文档:
uni.addInterceptor(STRING, OBJECT)
添加拦截器
STRING 参数说明
需要拦截的api
名称,如:uni.addInterceptor('request', OBJECT)
,将拦截 uni.request()
OBJECT 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 | 平台差异说明 |
---|---|---|---|---|---|
invoke | Function | 否 | 拦截前触发 | ||
success | Function | 否 | 成功回调拦截 | ||
fail | Function | 否 | 失败回调拦截 | ||
complete | Function | 否 | 完成回调拦截 |
需要在main.js里添加一下代码
// 统一的错误拦截
uniCloud.addInterceptor('callFunction',{
success(res){
const {result}=res
if(result.errCode!==0){
throw new Error(result.errMsg)
}
}
})
具体业务代码:(uniCloud配合uni-id用户注册逻辑)
async register() {
try{
uni.showLoading({
title:"注册中"
})
console.log('111'+this.avatar.url)
const forms = await this.$refs.forms.validate()
const res=await uniCloud.callFunction({
name:"index",
data:{
...forms,
avatar: this.avatar.url
}
})
uni.showToast({
title:"注册成功",
icon:'none'
})
console.log(res.result.code)
console.log(res)
}catch(e){
uni.showToast({
title: e.message || '校验失败',
icon: 'none'
})
}finally{
uni.hideLoading()
}
}