#javascript #axios
Вопрос:
Я хочу проверить значение в моем перехватчике Axios на наличие значения в параметрах. Если он соответствует условию, не выполняйте вызов, а возвращайте пустой массив.
Вот вся моя конфигурация Axios:
import Axios from 'axios'
import store from '@/store'
const AxiosConfig = Axios.create({
baseURL: process.env.VUE_APP_BASE_API_URL
})
const addToken = (config) => {
const token = store.getters['AuthModule/getAuthToken']
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
}
let numOfRequests = 0
AxiosConfig.interceptors.request.use(
(config) => {
addToken(config)
if (config.params.autocomplete.length < 2){
// don't make the call and return an empty [] like I did make the call.
}
store.commit('SET_LOADER_TO_STATE', true)
numOfRequests
return config
},
(error) => {
store.commit('SET_LOADER_TO_STATE', false)
numOfRequests--
return Promise.reject(error)
}
)
AxiosConfig.interceptors.response.use(
(response) => {
numOfRequests--
if (numOfRequests === 0) {
store.commit('SET_LOADER_TO_STATE', false)
}
return response
},
(error) => {
store.commit('SET_LOADER_TO_STATE', false)
numOfRequests--
if (numOfRequests === 0) {
store.commit('SET_LOADER_TO_STATE', false)
}
if (
error.response.status === 401 amp;amp;
error?.response?.data?.error?.message === 'Unauthenticated.'
) {
store.dispatch('AuthModule/logoutUser')
return
}
if (error?.response?.data?.error) {
throw new Error(
error?.response?.data?.error.message ||
error.response.data.error ||
error.response.data
)
} else if (error?.response?.data?.errors) {
const errors = {}
const errorsList = error?.response?.data?.errors
for (const key in errorsList) {
if (Object.prototype.hasOwnProperty.call(errorsList, key)) {
errors[key] = errorsList[key][0]
}
}
throw new Error(JSON.stringify(errors))
} else if (error) {
throw new Error(error.response.data.message)
} else {
throw new Error('Network Error')
}
}
)
export default AxiosConfig
Возможно ли это?
Комментарии:
1. Вы, вероятно, могли бы сделать
return Promise.resolve([])
2. @TheFool Пытался, но не пошел