Promise 异步问题

发布于 2022-09-07 22:35:16 字数 682 浏览 18 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

尾戒 2022-09-14 22:35:16

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

我也只是我 2022-09-14 22:35:16

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

清晨说晚安 2022-09-14 22:35:16

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文