【发布时间】:2021-06-30 23:47:45
【问题描述】:
给定以下从后端更新值的函数:
const updateValues = async (arg1, arg2, arg3) => {
try {
const response = await axios.patch(
...
);
...
return response.data;
} catch (err) {
console.error(err.response);
return {};
}
};
我无法成功响应 Promise 函数,这是我的实现:
const response = updateValues('bar', id, value1, value2, 'foo'
);
response
.then(() => console.log('success:', response))
.catch((err) => console.log('fail:', err));
我得到的是,不管response 总是解决并且我永远不会发现错误,我做错了什么?
【问题讨论】:
-
但是你的整个函数体都在
try/catch里面,而catch所做的一切都是正常返回? -
问题是你的
updateValues函数永远不会抛出。它总是捕获任何 axios 错误并返回一个空对象。 -
您可以将
return {};替换为throw err;以重新引发错误。见:jsfiddle.net/04jnzo5d -
使用 then/catch 时不使用 try/catch 会怎样?
-
我无法控制后端代码,所以我想在这种情况下我无能为力
标签: javascript async-await promise