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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
别光发promise的定义代码,也要发你怎么调用的。。。
每一次请求都去获取一次设备信息吗?为什么不缓存起来?
感谢各位回答者, 是因为我__nativeFn方法封装的问题 因为每个接口请求前都需要调用 js_getAllDeviceInfo这个ios方法。 我response 这个匿名函数是自动生成挂载在window上的 所以第二个第三个等等api请求一直在重写这个方法