Javascript Axios不会抓住你的
我得到了下面的函数,但是当它遇到错误时,它没有去捕捉它,而是直接去了。请注意,这是有效的,我只是试图迫使捕获Javascript Axios不会抓住你的,javascript,reactjs,axios,Javascript,Reactjs,Axios,我得到了下面的函数,但是当它遇到错误时,它没有去捕捉它,而是直接去了。请注意,这是有效的,我只是试图迫使捕获 const AddMainItem = HPSMainObject => { let data = JSON.stringify(HPSMainObject); const request = axios({ method: "POST", url: getMainUrl( "web/lists/GetByTitle('" +
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);
});
}
这一行:
.catch(error => error)
…将拒绝的承诺转换为解决错误的承诺。这相当于在同步代码中执行此操作:
try {
doSomething();
} catch (error) {
return error; // The function is no-longer throwing
}
看来你想做的是:
.catch(error => { throw error; })
…但这是多余的。只要省略catch,调用方的catch
就会生效。这一行:
.catch(error => error)
…将拒绝的承诺转换为解决错误的承诺。这相当于在同步代码中执行此操作:
try {
doSomething();
} catch (error) {
return error; // The function is no-longer throwing
}
看来你想做的是:
.catch(error => { throw error; })
…但这是多余的。只要省略catch,调用者的
catch
就会生效。只是为了确保我理解正确,当你说省略catch时,你的意思是我只是删除handleSubmit函数中的catch,并在AddMainItem中保留.error?是的,没错。要么这样,要么在接球后确保你再投。谢谢你指出我的错误!我不知道我怎么会忘记它会继续返回承诺链。谢谢。但是有一个问题,如果我想做一个调用函数(handleSubmit),该怎么办获取错误消息?因为我计划在其他函数出现错误时调用该函数,以确保我理解正确,当你说“忽略捕获”时,你的意思是我只是删除handleSubmit函数中的捕获,并在AddMainItem中保留.error?是的,没错。要么这样,要么在接球后确保你再投。谢谢你指出我的错误!我不知道我怎么会忘记它会继续返回承诺链。谢谢。但有一个问题,如果我想让一个调用函数(handleSubmit)得到错误消息,该怎么办?因为我计划在另一个函数出错时调用该函数