Я реорганизовал http-экземпляр с axios и добавил обработку ошибок, например 403 error. Этот код использует конфигурацию axios и Interceptors. Мне нужно добавить обработку ошибок в этот класс.
import axios from 'axios';
import { constantCase } from 'change-case';
const _enable_logger = Symbol('_enable_logger');
const _instance = Symbol('_instance');
const _middleware = Symbol('_middleware');
class HttpInstance {
static [_enable_logger] = false;
static [_instance] = null;
static [_middleware](state, status, data, callback) {
if (HttpInstance[_enable_logger]) {
const log_state = constantCase(state).padEnd(8, ' ');
const log_status = constantCase(status).padEnd(8, ' ');
}
return callback(data);
}
static getInstance() {
return this[_instance];
}
static configure({ enable_logger, ...config }) {
HttpInstance[_enable_logger] = enable_logger;
HttpInstance[_instance] = axios.create(config);
}
static setRequestInterceptors(success = Promise.resolve, failure = Promise.reject) {
HttpInstance[_instance].interceptors.request.use(
request => HttpInstance[_middleware]('request', 'success', request, success),
request => HttpInstance[_middleware]('request', 'failure', request, failure),
);
}
static setResponseInterceptors(success = Promise.resolve, failure = Promise.reject) {
HttpInstance[_instance].interceptors.response.use(
response => HttpInstance[_middleware]('response', 'success', response, success),
response => HttpInstance[_middleware]('response', 'failure', response.response, failure),
);
}
}
export default HttpInstance;
Теперь мне нужно добавить обработку ошибок axios к перехватчикам.