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
”属性.
我吓坏了...我不明白为什么这不起作用:
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
”属性.