javascript - 多个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 = 10000axios.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}
问题解答
回答1:不会啊。
贴代码吧。
这种写法,肯定是要被覆盖了
回答2:你要是不用all方法当然不能保证顺序,数据当然会被覆盖。