多个axios同时请求,数据被前面的请求覆盖,如何解决?
多个axios同时请求,数据被前面的请求覆盖,如何解决?
用axios.all能解决,但总不能每次都加个all方法,不方便
axios配置
import axios from 'axios'
import store from '../vuex/'
import { Notification } from 'element-ui'
// import router from '../routers'
// axios 配置
axios.defaults.timeout = 10000
axios.defaults.baseURL = '/api/'
// http request 拦截器
axios.interceptors.request.use(config => {
if (store.state.token) {}
return config
}, err => {
return Promise.reject(err)
})
// 后台无返回success因此修改之前的拦截器规则,直接返回数据
// http response 拦截器
axios.interceptors.response.use(response => {
console.log(response)
if (response.data.status === 200 || response.data.code === 200) {
return response.data.data
} else {
Notification.error(response.statusText)
return response.data
// return Promise.reject(response.statusText)
}
})
export default axios
api配置(有几个如下的API,不全部贴了)
// 1. 产品系列 :: 列表
export const getProductType = params => {
return axios.get(`/product/type/list`, params)
}
页面中调用vuex
store.dispatch('getProductStatus')
store.dispatch('getProductStyle')
store.dispatch('getProductType')
vuex配置
import {getProductStyle, getProductStatus, getProductType} from '@/http/api'
const state = {
panelIsShow: false,
dict: {
statusDict: [],
styleDict: [],
typeDic: []
}
}
const mutations = {
SET_PANEL_SHOW (state, data) {
state.panelIsShow = data
},
// 获取产品募集状态字典
GET_DICT_STATUS (state, dict) {
state.dict.statusDict = dict
},
// 获取产品风格字典
GET_DICT_STYLE (state, dict) {
state.dict.styleDict = dict
},
// 获取产品系列字典
GET_DICT_TYPE (state, dict) {
state.dict.typeDict = dict
}
}
const actions = {
// 产品风格
async getProductStyle ({commit}) {
let data = await getProductStyle()
commit('GET_DICT_STYLE', data)
},
// 产品募集状态
async getProductStatus ({commit}) {
let data = await getProductStatus()
commit('GET_DICT_STATUS', data)
},
// 产品系列
async getProductType ({commit}) {
let data = await getProductType()
commit('GET_DICT_TYPE', data)
}
}
const getters = {
panelIsShow: state => state.panelIsShow,
dict: (state) => state.dict
}
export default {
state,
getters,
actions,
mutations
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不会啊。
贴代码吧。
这种写法,肯定是要被覆盖了
你要是不用all方法当然不能保证顺序,数据当然会被覆盖。