У меня проблема при вызове двух асинхронных c функций в React Native.
Вот код (я только что изменил имена):
getItems()
.then((response) => {
setItems(response.data);
})
.catch((err) => console.log('getItems', err));
getOtherItems()
.then((response) => {
console.log('response.data', response.data);
setOtherItems(response.data);
})
.catch((err) => console.log('getOtherItems', err));
Когда первая функция выдает ошибку, ошибка корректно перехватывается catch
. Но когда вторая функция ломается, ошибка передается через then
вместо catch.
Журналы выглядят следующим образом:
getItems <Error>
response.data <Error>
Есть идеи, почему это происходит?
РЕДАКТИРОВАТЬ:
getItems
и getOtherItems
выполняют HTTP-вызов, используя axios
, к внешней службе, которая возвращает массив элементов.
ИЗМЕНИТЬ 2:
Код для getItems
и getOtherItems
:
getItems() {
return axios.get('an URL');
}
getOtherItems() {
return axios.get('another URL');
}
РЕДАКТИРОВАТЬ 3:
Я понял, что первая функция выдает ошибку 500, а вторая регистрирует 404. Итак, проблема может быть связано с тем, как службы возвращают ошибку.
РЕДАКТИРОВАТЬ 4:
Кажется, проблема заключается в ошибке в службе. Я дам вам знать, как только это подтвердится. Спасибо!