用更多变量javascript包装单个变量回调函数

时间:2013-07-01 17:59:02

标签: javascript sqlite callback cordova wrapper

好的,我已经在这方面工作了几天,但我没有找到任何有助于此实例的示例。这似乎是一个非常普遍的场景,所以也许我只是没有找到正确的位置,或者解决方案可能比我想要的更复杂。

我有一个预构建的函数transaction,它接受回调函数queryDB。

db.transaction(queryDB, errorCB, successCB);

通过设计,queryDB将有一个“tx”或数据库事务对象来进行SQL调用。

function queryDB(tx){
   alert("transact");
   tx.executeSql("SELECT * FROM Sound", [], rqDB, errorCB);
}

现在我想将一些额外的变量传递给queryDB,特别是sqlCmd和一个结果回调函数。我已经尝试了很多方法来包装queryDB,我最喜欢的就是这样:

db.transaction({
    onQueryDB: function(tx) {
        queryDB(tx,sqlCmd,cb);
    }
}, errorCB, successCB);  

但是这不会调用我的queryDB函数。这似乎是javascript中应该简单和常见的东西。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您传递的是对象而不是函数!请改用:

db.transaction(function(tx) {
    queryDB(tx,sqlCmd,cb);
}, errorCB, successCB);