uni.addInterceptor({
returnValue(args) {
// 只返回 data 字段
console.log(args.data)
return args.data
}
})
- 发布:2023-02-27 18:41
- 更新:2025-01-22 09:57
- 阅读:918
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 21H2
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
浏览器平台: Chrome
浏览器版本: 95内核
项目创建方式: HBuilderX
操作步骤:
预期结果:
args.data
是响应数据
args.data
是响应数据
实际结果:
args.data
是null
args.data
是null
看看args是什么
如果是Promise {<pending>}
这里要改一下
uni.addInterceptor({
async returnValue(args) {
let res = await args
return res.data
}
})
夜散点炽 - 移动开发
这是我测试出来的,资料找不到,还有APP端的,因为我的工具不能断点调试vue3页面,没法测试,希望对你有帮助
uni.addInterceptor('request', {
invoke(args){//请求前触发,true放行,false阻断
return true;
},
returnValue(args){//实现分流,在成功和失败前执行,
if(args){ //当invoke返回值为false时这边为null,所以要判断空指针
// #ifdef MP-WEIXIN //微信小程序
args.onHeadersReceived((res)=>{
if(res.statusCode==200){
//什么都不执行则执行成功回调success
}else{
args.abort(); //执行失败回调fail
}
})
//#endif
// #ifdef H5 //h5
args._xhr.onreadystatechange = (res) =>{
if(args._xhr.readyState==4){//
if(res.target.status==200){
args._xhr.onload(); //执行成功回调success
}else{
args._xhr.onerror(); //执行失败回调fail
}
}
}
// #endif
}
},
success(res,obj){
//成功回调
},
fail(e, obj){
//失败回调fail
}
});
弈凌 (作者)
文档已补充官方示例出处与打印结果
2023-03-11 22:03