【发布时间】:2021-03-16 02:52:34
【问题描述】:
我有一个看起来像这样的函数,
const addItem = async(req, res, next) => {
const itemApi = new Connector({
url: '/item',
method: 'POST',
headers: {},
body: {item: "item name"}
});
try {
const response = await itemApi.call();
if(response.data && response.data.errors) {
return response.data.errors;
} else {
return response.data;
}
} catch(error) {
console.log(error);
}
我是这样调用这个方法的,
addItem(req, res, next)
.then((response) => console.log(response))
.catch((error) => console.log(error))
即使api返回错误,似乎总是调用then并且从不调用catch?我做错了吗?
【问题讨论】:
-
addItem捕获错误。 -
.catch()只会在函数抛出错误时被调用。 -
所以如果我不尝试/捕捉它会起作用吗?
-
您指的是哪种错误?它不会捕获
response.data.errors,因为您正常返回它。但如果 API 抛出异常,它应该可以工作。 -
API 正在返回 422 响应代码和错误对象
标签: javascript node.js async-await promise