1

我编写了一些代码来检查数据库中的值是否为空。

这是我的代码:

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 
4

1 回答 1

3

您的数据库函数正在异步运行。回调 ,checkrunningSuccess将在完成后运行,但之后的行db.transaction(checkrunningDB, checkerrorCB);可能会在此之前执行。

于 2012-12-03T00:28:51.317 回答