您的位置:首页技术文章
文章详情页

javascript - 多个axios同时请求,数据被前面的请求覆盖,如何解决?

【字号: 日期:2023-02-15 16:57:56浏览:22作者:猪猪

问题描述

多个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方法当然不能保证顺序,数据当然会被覆盖。

标签: JavaScript