我正在创建一个 Phonegap 应用程序,它在第一次运行时会以不同的方式执行。我检测第一次运行的方式是查看其中一个数据库表是否存在。正如您可能从下面的代码中看出的那样,我正在检查(可能)指示表已经存在的错误,从而证明这不是应用程序的第一次运行。
function databaseExists(){
var exists;
database.transaction(function(tx){
tx.executeSql('CREATE TABLE GLOBAL (uid, property, value)');
}, function(err){
exists = true;
}, function(){
exists = false;
});
return exists;
}
然而,我的问题是 Javascript 代码的异步执行意味着函数在成功(或错误)函数设置它的值之前返回它的值。
此函数在应用程序的初始化阶段调用:
if (databaseExists()){
// Do Something
}
因此必须返回值而不是在事务的成功回调中执行函数。
有没有办法强制执行等到数据库事务完成或通过 database.transaction 对象返回值?
在此先感谢,乔恩