К тому времени обнаружена ошибка вместо улова Promise - React Native - PullRequest
0 голосов
/ 03 августа 2020

У меня проблема при вызове двух асинхронных 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:

Кажется, проблема заключается в ошибке в службе. Я дам вам знать, как только это подтвердится. Спасибо!

...