JavaScript - 当错误调用另一个函数时函数不会抛出错误

JavaScript - Function doesn't throw error when error calls another function

我吓坏了...我不明白为什么这不起作用:

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'));

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

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

如果您想使用 alert 作为回调函数的等价物,您需要将其包装在匿名函数中:

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

此代码

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

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

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

如果警报没有弹出,则表示您的回调从未被调用

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