gpt4 book ai didi

javascript - Phonegap 等待数据库事务完成

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:24 24 4
gpt4 key购买 nike

我正在创建一个 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对象返回值?

提前致谢,乔恩

最佳答案

需要写成回调形式:

var dataBaseExists(yep, nope) {
database.transaction(function(tx) {
tx.executeSql('CREATE TABLE GLOBAL (uid, property, value)');
}, function(){
if (yep) {
yep.apply(this, arguments);
}
}, function(){
if (nope) {
nope.apply(this, arguments);
}
});
};


var itDoes = function() {
console.log("great");
};

var itDoesNot = function() {
console.log("what a pity");
};


databaseExists(itDoes, itDoesNot);

关于javascript - Phonegap 等待数据库事务完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com