为什么不能尝试抓住一些例外的工作?

时间:2018-03-01 05:21:01

标签: node.js

我在nodejs应用程序中有以下代码。 createUserWithEmailAndPassword用于在firebase服务中创建用户。问题是try catch如果从方法createUserWithEmailAndPassword抛出异常并且它崩溃我的应用程序,则不起作用。我想知道如何捕获nodejs中的所有错误。为什么try catch在我的案例中不起作用?

try {
                        return firebase
                            .auth()
                            .createUserWithEmailAndPassword(email, password);
                    } catch (err) {
                        l.error(err);
                        return reject(err);
                    }

1 个答案:

答案 0 :(得分:0)

如果您的方法是实现的承诺,那么在这种情况下您不需要使用try-catch块。看看下面的示例代码来实现欲望输出。

假设您的方法authcreateUserWithEmailAndPassword的承诺如下所示。为auth做同样的事情

function createUserWithEmailAndPassword(param1,param2){
   return Promise(function(reject,resolve){

       //your code here
  })
}

然后以这样的方式调用此方法,使您能够处理异常/错误

return firebase
.then(function(result){
     return auth();
})
.then(function(result){
     return createUserWithEmailAndPassword(email, password);
})
.then(function(result){
  //on success 
  resolve(result)
})
.catch(function(err){
       //handle all errors here
      reject(err)
})