【发布时间】:2012-08-21 17:20:51
【问题描述】:
我正在创建一个 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对象返回值?
提前致谢, 乔恩
【问题讨论】:
标签: javascript ios database cordova wait