cancelToken внутри перехватчика запроса Axios
Я пытаюсь использовать cancelTokens так, чтобы мне не приходилось писать это более одного раза в моем коде.
Я думал о чем-то вроде этого, но это не работает:
let sources = {}
const getCustomAxios = () => {
const customAxios = axios.create({
baseURL: '/v1/',
params: { format: 'json' },
transformRequest: [snakizeRequest, ...axios.defaults.transformRequest],
transformResponse: [...axios.defaults.transformResponse, camelizeResponse],
paramsSerializer: (params) => qs.stringify(params, {arrayFormat: 'brackets'}),
headers: { 'Authorization': 'JWT ' + getToken() }
})
customAxios.interceptors.request.use(function (config) {
if (sources[config.url] != undefined) {
sources[config.url].cancel()
console.log('cancelled')
}
else {
console.log('first')
}
// Do something before request is sent
sources[config.url] = axios.CancelToken.source()
config.cancelToken = sources[config.url].token
return config
})
return customAxios
}
Я полагаю, что подобное дает мне следующие проблемы:
config.cancelToken = sources[config.url].token
Как я могу исправить эту проблему?
Большое спасибо!