Promise 异步问题

axios 全局请求拦截器里需要请求一个方法拿到返回值 在return config
因为请求方法时异步的 所以采用Promise

axios.interceptors.request.use(config => {
    return new Promise(resolve => {
        window.__nativeFn("js_getAllDeviceInfo", {
            // ios的响应结果
            response: r => {
                config.data = Object.assign(config.data, r.data)
                // window.vue.$Tips.info(r.data, 2000)
                resolve(config)
            }
        })
    })

}, error => {
    return Promise.reject(error)
});

当一个页面只有一个请求的时候这个是ok的, 当一个页面有多个请求的时候 最后一个请求的config会覆盖掉之前的所有请求的config 并且也只发送了一次请求 不知道为什么会这样。 如果解决该怎么解决?或者采用什么方式可以达到我想要的结果 等ios响应后 在return config

阅读 2.7k
3 个回答

别光发promise的定义代码,也要发你怎么调用的。。。

每一次请求都去获取一次设备信息吗?为什么不缓存起来?

感谢各位回答者, 是因为我__nativeFn方法封装的问题 因为每个接口请求前都需要调用 js_getAllDeviceInfo这个ios方法。 我response 这个匿名函数是自动生成挂载在window上的 所以第二个第三个等等api请求一直在重写这个方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题