Reactjs Axios不会被抓住

时间:2018-09-08 00:14:21

标签: javascript reactjs axios

我得到了以下函数,但是当遇到错误时,没有事件去捕获它,而是一直到那时。请注意,这是可行的,我只是想强制捕获

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 :(得分:2)

此行:

.catch(error => error)

...将拒绝的承诺转换为解决错误的承诺。等效于在同步代码中执行此操作:

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

您似乎想做的是:

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

...但是那是多余的。只需忽略陷阱,呼叫者的catch就会响起。