我做了一些代码来检查数据库中的值是否为null。
这是我的代码:
var tabel;
var running = false;
function CheckRunning(tabel){
this.tabel = "tabel"+tabel+"";
var db = window.openDatabase(this.tabel, "1.0", this.tabel, 1000000);
db.transaction(checkrunningDB, checkerrorCB);
console.log(this.running);
return this.running;
}
function checkrunningDB(tx) {
tx.executeSql('SELECT max(id), sluttime FROM '+this.tabel, [], checkrunningSuccess, checkerrorCB);
}
function checkrunningSuccess(tx, results) {
if (results.rows.item(0).sluttime != null){
this.running = false;
} else{
this.running = true;
}
}
function checkerrorCB(err) {
this.running = false;
console.log(err);
}
所以我做了一个按钮,运行这个CheckRunning()函数。
当我按下它时,我得到这个(每一行代表一个按钮点击):
false
true
true
true
true
答案 0 :(得分:3)
您的数据库函数是异步运行的。回调函数checkrunningSuccess
将在完成后运行,但db.transaction(checkrunningDB, checkerrorCB);
之后的行可能会在此之前执行。