我吓坏了......我无法弄清楚,为什么这不起作用:
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'));
也许有人知道,我的错误在哪里。
答案 0 :(得分:1)
alert('error inside it')
会立即被调用,而不是作为回调。
如果你想使用alert
作为你的回调函数的等效函数,你需要将它包装在一个匿名函数中:
db.transaction(insert7, function() {
alert('error inside it')
});
答案 1 :(得分:1)
此代码
db.transaction(insert7, alert('error inside it'));
并不意味着错误发生...它正在执行警报,以便返回的值应传递给transaction
函数,而不是尝试
db.transaction(insert7, function () {
alert('error inside it')
});
如果警报未弹出,则表示永远不会调用您的回调
答案 2 :(得分:1)
你的" error
"功能中的对象" errorHandler
"没有" message
"属性。