Javascript 有没有办法从arrow函数捕获并返回firebase错误?
我想捕获并“检索”firebase错误。但是,该错误在箭头函数中捕获 我曾尝试返回错误,但很快意识到它正在返回到父函数,而不是它被分配到的变量。我尝试了一个单独的试抓块,但没有成功 下面是有关在firebase身份验证中创建用户的函数Javascript 有没有办法从arrow函数捕获并返回firebase错误?,javascript,firebase,error-handling,firebase-authentication,Javascript,Firebase,Error Handling,Firebase Authentication,我想捕获并“检索”firebase错误。但是,该错误在箭头函数中捕获 我曾尝试返回错误,但很快意识到它正在返回到父函数,而不是它被分配到的变量。我尝试了一个单独的试抓块,但没有成功 下面是有关在firebase身份验证中创建用户的函数 function signupEmailPassword(form){ //variables email=form['email'].value; password=form['password'].value; confirm
function signupEmailPassword(form){
//variables
email=form['email'].value;
password=form['password'].value;
confirmedPassword=form['confirmPassword'].value;
//check if passwords are matching
if(password==confirmedPassword){
//creates a user with an email and password
authentication.createUserWithEmailAndPassword(email, password).then(cred=>{
form.reset();//reset form
sendEmailVerification();//send a verification email
}).catch( (error)=>{
//errors messages
document.getElementById("message").innerHTML = error.message;
document.getElementById("message").style.color = "red";
})
}else{
//passwords do not match error message
document.getElementById("message").innerHTML = "Passwords do not match";
document.getElementById("message").style.color = "red";
}
}
我希望能够访问在单独的javascript文件中捕获的错误变量。因此,我需要在调用函数时返回错误。错误处理程序可以作为回调函数传递
var errorHandler = (error) => {
...
}
function signupEmailPassword(form, errorHandler) {
...
}).catch( (error)=>{
//errors messages
document.getElementById("message").innerHTML = error.message;
document.getElementById("message").style.color = "red";
errorHandler(error);
})
}
或者,可以将承诺链接起来,这样每个承诺都会返回一个承诺。这是从真正异步的角度处理问题的方法
请参见快速观察,您可以将错误传递给catch中的另一个函数,可能是来自另一个文件的函数。您可以使用类似于
返回targetFunction(error)
的内容来结束catch块,targetFunction希望将错误作为参数。