【发布时间】:2021-09-25 09:53:11
【问题描述】:
我有两个功能,登录(在fileB.js中):
export const login = async (data) => {
try {
const response = await auth.login(data);
return response;
} catch (e) {
return new Error(e);
}
};
和 loginProcess(在 fileA.js 中):
const loginProcess = (data) => {
login(data)
.then((response) => {
if (response.status === 200) {
}
})
.catch((e) => {
setError(true);
});
};
如果我在 login() 函数内有错误,它会返回 new Error(e) 但在 loginProcess() 内,来自 login() 的错误不会被 catch 捕获,而是 then。我需要从login() 中的catch 中的loginProcess() 中捕获new Error,我该如何解决?
【问题讨论】:
-
"它返回新的 Error(e)" - 这是错误的。一个不应该
return错误,一个应该throw他们作为例外。 -
另外,将错误包装在另一个
Error中是不合逻辑的 - 为什么你甚至在函数内部甚至catch这个错误?
标签: javascript reactjs try-catch