4***@qq.com
4***@qq.com
  • 发布:2024-12-19 19:30
  • 更新:2024-12-19 21:19
  • 阅读:24

【报Bug】uniapp使用拦截器修改返回值,使用promise方法接收和callback回调接收均无效果

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Win11

HBuilderX类型: 正式

HBuilderX版本号: 4.36

浏览器平台: Edge

浏览器版本: Microsoft Edge 版本 126.0.2592.87 (正式版本) (64 位)

项目创建方式: HBuilderX

示例代码:
const httpInterceptor={  
    invoke(options:UniApp.RequestOptions){  
        if(!options.url.startsWith("http")){  
            options.url=BASEURL+options.url  
        }  
        options.header={  
            ...options.header,  
            "source-client":"app"  
        }  
    },  
    returnValue(res){  
        console.log(res instanceof Promise)  
        return res.data  
    },success(args){  
        return args.data={}  
    }  
}  

uni.addInterceptor("request",httpInterceptor)  
uni.addInterceptor({  
  returnValue(args) {  
    // 只返回 data 字段  
    return args.data  
  }  
})  
uni.request({  
            method:"GET",  
            url:"https://pcapi-xiaotuxian-front-devtest.itheima.net/home/banner",  
        }).then(res=>{console.log("then",res)}).catch(err=>{console.error("catch",err)})  

操作步骤:

使用上述代码,运行,且参照官方代码中,https://uniapp.dcloud.net.cn/api/interceptor.html,无拦截器api名称,也无效

预期结果:

打印 :{code: '1', msg: '操作成功', result: Array(5)}

实际结果:

打印了:{data: {…}, statusCode: 200, header: {…}, cookies: Array(0), errMsg: 'request:ok'}

bug描述:

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

2024-12-19 19:30 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com (作者)

经过测试,返回一个新的promise有效
‘’‘
uni.addInterceptor("request",{
returnValue(res){
console.log("拦截器pro")
return new Promise((r,j)=>{
res.then(Response=>{
r(Response.data)
})
})
}
})
’‘’

要回复问题请先登录注册