3***@qq.com
3***@qq.com
  • 发布:2023-02-26 17:03
  • 更新:2024-02-05 12:52
  • 阅读:576

拦截器returnValue无效,获取的参数值并非返回值?

分类:uni-app

官方文档:https://uniapp.dcloud.net.cn/api/interceptor.html

uni.addInterceptor({
returnValue(args) {
// 只返回 data 字段
return args.data
}
})

麻烦知道的朋友回复下,感谢感谢

2023-02-26 17:03 负责人:无 分享
已邀请:
YUANRJ

YUANRJ

提供下测试工程

  • 3***@qq.com (作者)

    这里只是前端项目地址,https://gitee.com/zhandiming/fap-front,可以么?

    2023-02-28 15:39

  • 鑫花

    我也是哦,uni.addInterceptor里头returnValue不生效,uni.request的success里还是收到包括statusCode那一层

    2023-02-28 22:32

  • 鑫花

    难道是理解错了,我是想实现类似axios拦截器那样,在response拦截器里统一处理最外层的http状态码,具体业务里只处理成功的返回,因为业务封装了两层,第一层是http状态码,里面一层是业务状态码

    2023-02-28 22:35

  • YUANRJ

    回复 鑫花: 你可以在拦截器的success里进行处理

    2023-03-01 15:27

  • uniSGJ

    回复 YUANRJ: 在拦截器的success处理数据了,但是返回的还是statusCode那一层

    2023-07-26 10:39

1***@qq.com

1***@qq.com

遇到同样的问题了,解决了吗

c***@yeah.net

c***@yeah.net

returnValue方法里的代码写法入附件中的就可以控制反给uni.request的数据了。
直接上代码:
uni.addInterceptor("request", {
invoke: result => {
result.url = BASE_URL + result.url;
},
returnValue: result => {
return new Promise((resolve, reject) => {
result.then((res: any) => {
resolve(res.data);
}).catch((err: any) => {
reject(err);
});
});
},
success: result => {
console.log("success", result);
},
fail: result => {
console.log("fail", result);
},
complete: result => {
console.log("complete", result);
}
});

要回复问题请先登录注册