Javascript 有没有办法从arrow函数捕获并返回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

我想捕获并“检索”firebase错误。但是,该错误在箭头函数中捕获

我曾尝试返回错误,但很快意识到它正在返回到父函数,而不是它被分配到的变量。我尝试了一个单独的试抓块,但没有成功

下面是有关在firebase身份验证中创建用户的函数

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希望将错误作为参数。