const instance = axios.create({
timeout: 30000
});
instance.interceptors.request.use(config => {
config.cancelToken = new axios.CancelToken(cancel => {
store.commit('addCancelToken', cancel)
})
})
cancelTokenArr: []
mutations: {
addCancelToken(state, cancel) {
if (!state.cancelTokenArr) {
state.cancelTokenArr = []
}
if (cancel) {
state.cancelTokenArr.push(cancel)
}
},
clearCancelToken(state) {
state.cancelTokenArr.forEach(c => {
if (c) {
c()
}
})
state.cancelTokenArr = []
}
}
router.beforeEach((to, from, next) => {
store.commit('clearCancelToken')
})