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

标签 javascript database cordova web-sql

我吓坏了...我想不通,为什么这不起作用:

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

如果警报没有弹出,则意味着您的回调从未被调用

关于JavaScript - 当错误调用另一个函数时函数不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30347792/

相关文章:

visual-studio - Ionic 2 的智能感知在 Visual Studio 2015 中不起作用

Android Ionic Cordova - 错误 : Failed to get absolute path to installed module

javascript - 使用未定义的 HTML 元素会产生什么影响?

javascript - Firebase promise 问题 - "Maximum call stack size exceeded"

javascript - 如何在 JavaScript 模块中使用 AWS?

MySQL 一直提示外键。错误 150

javascript - 在单个进度条中显示下载多个文件的进度

javascript - Angular promise : Best Practices and Pros/Cons of Different Techniques

oracle - 寻找带有Windows GUI的基于SQL的RDBMS

mysql - 在插入数据库表之前检查是否存在相同的行