首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有更好的方法来捕获clojurescript中的javascript错误?

是否有更好的方法来捕获clojurescript中的javascript错误?
EN

Stack Overflow用户
提问于 2017-02-01 11:33:26
回答 1查看 279关注 0票数 0

我一直在努力在clojurescript的firebase工作,我在这里尝试了以下建议:

How to catch any Javascript exception in Clojurescript?

到目前为止,我的代码是:

代码语言:javascript
运行
复制
(defn register [email password]
  (try
    (let [reg (.createUserWithEmailAndPassword (.auth firebase) email password)
          _ (.log js/console reg)]
       reg)
      (catch :default e
        (.log js/console "Register Error:" e))))

正如我所怀疑的,它没有被捕捉到的原因是,评估可能会发生在以后,这是为了测试这个想法。

我也尝试过:

代码语言:javascript
运行
复制
(defn register [email password]
  (try
    (.createUserWithEmailAndPassword (.auth firebase) email password)
      (catch :default e
        (.log js/console "Register Error:" e))))

我称之为:

代码语言:javascript
运行
复制
(apply register ((juxt :email :password) @app-state))

如果我给它一封我已经注册过的电子邮件,我会收到一个auth/email-already-in-use错误,但是我抓不到它。

代码语言:javascript
运行
复制
www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyDzsfz98Y6Pjl1n-uAzfI6GHWKqShFdRI4:1
POST https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=AIzaSyDzsfz98Y6Pjl1n-uAzfI6GHWKqShFdRI4 400 ()

firebase.inc.js:81
Uncaught
  Qcode: "auth/email-already-in-use"
  message: "The email address is already in use by another account."
  __proto__: Error
(anonymous) @ firebase.inc.js:81

我怎么抓到它?或者是使用原始javascript来处理这个问题的唯一方法?

代码语言:javascript
运行
复制
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-01 21:41:30

火基是异步的。Javascript的try...catch (通常也包括Clojurescript的)在回调中不起作用。使用错误回调调用Firebase处理程序提供的catch函数,如下所示--这是上面文章中JS代码的直译:

代码语言:javascript
运行
复制
(defn register [email password]
  (.. firebase auth (createUserWithEmailAndPassword email password)
      (catch (fn [e] (.log js/console "Register Error:" e))))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41978754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档