如何在SQLite Javascript数据库上获取返回的函数?

如何在SQLite Javascript数据库上获取返回的函数?,javascript,sqlite,Javascript,Sqlite,我使用下面的函数来执行SQL,当不需要返回时,它可以正常工作,但是如果我执行类似“SELECT*FROMtable”这样的查询,它将不会返回任何内容。功能是: function executeSQL(query) { return db.transaction(function(q) { return q.executeSql(query, null, function (q, results) { debug(results); return r

我使用下面的函数来执行SQL,当不需要返回时,它可以正常工作,但是如果我执行类似“SELECT*FROM
table
”这样的查询,它将不会返回任何内容。功能是:

function executeSQL(query)
{
  return db.transaction(function(q) 
  {    
    return q.executeSql(query, null, 
  function (q, results)
  {
   debug(results);
   return results;
  }, 
  function (q, error)
  {
   debug(error);
  }
 );
  });
}
我称之为:

results = executeSQL('SELECT * FROM `table`');

事务函数是异步的:它不会等待您作为参数提供给它的函数返回,实际上可能不会返回任何内容

我认为不可能编写返回结果的包装器函数,除非您在循环中等待,这对于JavaScript来说是有问题的,也是不可取的

function executeSQL(query, callback) {
    db.transaction(function(q) {
        q.executeSql(query, null, function (q, results) {
            callback(results);
        }, function (q, error) {
            debug(error);
        });
    });
}

var query = "SELECT 1";
executeSQL(query, function(result) {
    alert(result);
});
alert("When am I?"); // this may get called before alert(result)