Я централизовал все свои вызовы API в уникальном файловом API. js, как показано ниже:
API. js
Class APIContextProvider extends Component {
async apiCallTest() {
var url = random_url
const options = {
url: url,
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;',
},
};
return await axios(options)
.then(response => {
if (response.status === 200) {
return response.data
}
}).catch(error => {
console.log(error.response.status)
}
);;
}
Тогда Я вызываю мой API из другого компонента:
OutsideClass. js
async componentDidMount() {
this.context.apiCallTest().then(data => {
// How can I prevent this then() to run when catch() happens?
});
}
Порядок, в котором все делается, заключается в следующем: then (). Catch () .then ().
То, что я хочу, - это предотвратить последнее then (). не происходит, если обнаружена ошибка c (например, 401), поскольку я хочу глобальную обработку ошибок.
Посмотрел везде, но не могу найти решение ...
Спасибо!