gpt4 book ai didi

javascript - 传递异步错误的正确方法

转载 作者:行者123 更新时间:2023-11-28 17:33:26 25 4
gpt4 key购买 nike

我有一个使用 Firebase 身份验证来更新用户电子邮件的函数:

export const updateEmail = async (email) => {
const user = auth.currentUser;
return user.updateEmail(email);
};

它用在从表单(在 React 中)获取电子邮件并尝试更新电子邮件的函数中。如果出现错误,我们会更改状态以反射(reflect)该错误。

handleSave = (e) => {
const email = e.target.email.value;

updateEmail(email).catch((err) => {
this.setState({ didError: true, emailError: err.message });
});
};

但是,当发生错误时,在控制台中我得到: enter image description here

我的问题是:为什么仍然显示“未捕获”? handleSave 中的 .catch() 不处理这个问题吗?

更新

Link to relevant Firebase docs

最佳答案

假设 updateEmail 返回一个 promise ,我想你可以尝试:

export const updateEmail = (email) => { // no need for async here
const user = auth.currentUser;
return user.updateEmail(email);
};


handleSave = async (e) => {
const email = e.target.email.value;
try{
await updateEmail(email);
}catch(err){
this.setState({ didError: true, emailError: err.message });
}
};

关于javascript - 传递异步错误的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49722352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com