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

Wrapping a single variable callback function with more variables javascript

本文关键字:变量 单个 回调 函数 封装 javascript      更新时间:2023-09-26

好吧,我已经做了几天了,还没有找到任何对这个例子有帮助的例子。这似乎是一个非常常见的场景,所以也许我只是找不到合适的位置,或者解决方案比我希望的更复杂。

我有一个预构建的函数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中看起来应该是简单而常见的。有人能帮忙吗?

您传递的是对象而不是函数!使用这个替代:

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