lei-mu / luch-request

luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。
https://www.quanzhan.co/luch-request/
MIT License
632 stars 96 forks source link

setConfig修改无效 #77

Closed Soonze closed 2 years ago

Soonze commented 2 years ago

版本信息

luch-request版本3.0.7

原始需求

在拦截器中根据开发人员的传参控制相关逻辑

使用方法

// 伪代码
const http = new Request();

http.interceptors.request.use(...);
http.interceptors.response.use(...);

function ajax(options) {
    //...
    http.setConfig((config) => {
        // 是否自动代理token
        config.isAutoProxy = options.isAutoProxy;
        // 是否默认处理错误返回信息
        config.isAutoDealError = options.isAutoDealError;

        return config;
    });

    return new Promise((resolve, reject) => {
        http.request(options)
            .then((response) => {
    //...
}

export default ajax;

问题&排查

设置之后在拦截器的回调中,config变量没有设置的属性,排查了一下,经过middleware函数的

config = mergeConfig(this.config, config)

之后,this.config比config多的属性都合并没有了? image image image

Soonze commented 2 years ago

解决了,放到config.custom中可以