Javascript 无法使SQLite SELECT语句在phonegap中工作
我写了一个对象,让我更容易地使用Phonegap的数据库。SELECT语句的部分如下所示:Javascript 无法使SQLite SELECT语句在phonegap中工作,javascript,android,sqlite,cordova,Javascript,Android,Sqlite,Cordova,我写了一个对象,让我更容易地使用Phonegap的数据库。SELECT语句的部分如下所示: /******************** * Database SELECT: * ********************/ global.select = function(query) { var resultSet = null; db.transaction(function(tx){ // Do SQL stuff here: tx.executeSql
/********************
* Database SELECT: *
********************/
global.select = function(query)
{
var resultSet = null;
db.transaction(function(tx){ // Do SQL stuff here:
tx.executeSql(query, [], function(tx, results){ // Success:
// When results are there:
if(results != null)
{
// return them for using them:
resultSet = results;
alert("Results are here: " + results);
}
// In all other cases:
else
{
// Return false (error):
return false;
}
}, function(error){ // Error:
global.logError(error);
});
}, function(error){ // Error:
global.logError(error);
}, function(){ // Success:
consoleLog("SELECT complete!");
alert("Return would be: " + resultSet);
return resultSet;
});
} // <-- global.insert = function(query)
执行此操作时
alert("Result in index.html failure: " + results);
是我看到的第一个输出。它似乎在select启动之前执行。我做错了什么
另外,我不知道如何从SELECT函数返回结果。由于存在嵌套函数,我不知道如何优雅地处理它。这方面有什么想法吗
万分感谢 这些回调是异步的;WebSQL就是这样设计的
db。选择
在数据可用之前返回;任何访问数据的代码都必须在executeSql
或事务
回调函数中,或者在从那里调用的函数中。感谢您指出这一点!换句话说,使用上述方法不可能使数据库调用变得更容易一些?我还有别的方法可以做到这一点吗?现在,我会用“艰难的方式”去做数据库调用从来都不容易;你总是需要将多个函数链接在一起。好的,再次感谢你+我接受了你的答案。对于那些面临同样问题的人:我最终使用代码模板来创建代码。。。不完美,但比每次从头开始编码要好得多!:)
alert("Result in index.html failure: " + results);