我有一点小问题,但我不知道我做错了什么。我有如下功能。在.catch警报工作正常,我看到错误在浏览器,但我有问题与这个相同的错误在console.log <-我没有看到任何😦基本上,我想传递错误到另一个函数,如通知(错误),但我没有看到任何.
const signIn = (e) => {
e.preventDefault();
signInWithEmailAndPassword(auth, email, password)
.then(() => {
navigate("/");
})
.catch((error) => {
// notify(error)
console.log("error: ", error);
alert(error);
});
};
我尝试尝试尝试try catch和async await,但我遇到了同样的问题:
async function signIn(e) {
try {
e.preventDefault();
await signInWithEmailAndPassword(auth, email, password).then(() => {
navigate("/");
});
} catch (error) {
// notify(error);
console.error("error: ", error);
alert(err);
}
}
2条答案
按热度按时间tpxzln5u1#
您不能直接在console.log中调用error对象,因为js将error解析为JSON对象时存在一些问题。在
notify()
函数中使用error.message
或error.toString()
。错误对象具有中断,导致解析JSON对象时出现问题。检查下面的代码,只有error.message
,这是第一行(键:值对)是可访问的。请注意,JSON.parse(error)
因此给出了一个错误。snz8szmq2#
您面临的问题可能与传递给console.log语句的错误对象有关。错误对象有时可能不会直接在控制台显示,具体取决于其结构。
要确保正确记录错误,可以尝试使用console.error而不是console.log:
另外,如果你想将错误传递给另一个函数,比如notify,你可以**取消注解notify(error)**行,并确保notify函数被正确实现,并且能够处理错误对象。