JavaScript -当错误调用其他函数时,函数不会抛出错误

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

本文关键字:错误 函数 出错 调用 其他 JavaScript      更新时间:2023-09-26

我疯了…我不明白,为什么这个不工作:

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

也许有人知道我错在哪里

此代码

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

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

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

如果警报没有弹出,这意味着你的回调从未被调用过

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

如果你想使用alert作为一个等效的回调函数,你需要包装它在一个匿名函数:

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

你的" error "对象在函数" errorHandler "中没有" message "属性。