【问题标题】:JavaScript - Function doesn't throw error when error calls another functionJavaScript - 当错误调用另一个函数时,函数不会抛出错误
【发布时间】:2015-05-20 11:02:29
【问题描述】:

我吓坏了...我不知道为什么这不起作用:

function errorHandler(transaction, error){
    alert('Error: ' + error.message);
}
function openDb7(){
    var db = window.openDatabase("Database", "1.0", "Cordova login", 300000);
    db.transaction(insert7, errorHandler);

因此从未调用过errorHandler 函数。但是,如果我在其中放置警报而不是函数调用,它的工作原理 - 它看起来像这样:

function errorHandler(transaction, error){
    alert('Error: ' + error.message);
}
function openDb7(){
    var db = window.openDatabase("Database", "1.0", "Cordova login", 300000);
    db.transaction(insert7, alert('error inside it'));

也许有人知道,我的错误在哪里。

【问题讨论】:

    标签: javascript database cordova web-sql


    【解决方案1】:

    这段代码

    db.transaction(insert7, alert('error inside it'));
    

    并不意味着错误发生了......它正在实际执行警报,因此返回的值应该传递给transaction函数,试试这个

    db.transaction(insert7, function () { 
        alert('error inside it')
    });
    

    如果警报没有弹出,这意味着你的回调永远不会被调用

    【讨论】:

      【解决方案2】:

      alert('error inside it') 被立即调用,而不是作为回调。

      如果您想使用 alert 等效于您的回调函数,您需要将其包装在一个匿名函数中:

      db.transaction(insert7, function() {
        alert('error inside it') 
      });
      

      【讨论】:

        【解决方案3】:

        函数“errorHandler”中的“error”对象没有“message”属性。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-12
          • 1970-01-01
          • 1970-01-01
          • 2015-08-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多