Реактив Аксиоса не поймаешь - PullRequest
0 голосов
/ 08 сентября 2018

Я получил следующую функцию, но когда он обнаружил ошибку, событие не пошло, чтобы поймать его, просто пошел прямо к тому времени. Обратите внимание, что это работало, я просто пытался заставить поймать

const AddMainItem = HPSMainObject => {
  let data = JSON.stringify(HPSMainObject);

  const request = axios({
    method: "POST",
    url: getMainUrl(
      "web/lists/GetByTitle('" +
        MAINITEMGENERALINFO.mainItemRelatedObject.mainList.title +
        "')/Items"
    ),
    data: data,
    headers: INTERNALCONFIG.PostHeader
  });

  return request.then(result => result.data.d).catch(error => error);
};

Я назвал это, используя это, можете ли вы посоветовать, какова лучшая практика?

handleSubmit = () => {
    let self = this;
    AddMainItem(self.state.HPSMainObject)
      .then(function(AddMainItemResult) {
        console.log("its working");
      })
      .catch(function(errorMessage) {
        console.log("Error AddMainItem: ", errorMessage);
      });
}

1 Ответ

0 голосов
/ 08 сентября 2018

Эта строка:

.catch(error => error)

... преобразует отклоненные обещания в обещания, которые разрешают ошибку.Это эквивалентно выполнению этого в синхронном коде:

try {
  doSomething();
} catch (error) {
  return error; // The function is no-longer throwing
}

Кажется, что вы хотите сделать:

.catch(error => { throw error; })

... но это избыточно.Просто опустите защелку, и catch звонящего сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...