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方法當然不能保證順序,數據當然會被覆蓋。
