在 Phonegap 中的数据库事务语句之前发出警报触发

alert fire before the db transaction statement in phonegap

本文关键字:语句 Phonegap 数据库 事务      更新时间:2023-09-26
db.transaction(function (tx) {
    tx.executeSql('SELECT userid FROM user', [], function (tx,results) {
        var len = results.rows.length;
        for (var i = 0; i < len; i++) {
            userId = results.rows.item(i).userid;
            alert(results.rows.item(i).userid );
        }
    }, dbErrorHandler);
}, dbErrorHandler);
alert(userId);

在上面的代码中,最后一个警报显示在上一个数据库事务语句之前。

为什么会这样?有人可以提出解决方案吗?

这是一个异步调用,您需要在成功回调中显示警报:

db.transaction(selectDB, errorCB, successCB);
function selectDB(tx) {
    tx.executeSql('SELECT userid FROM user', [], function (tx,results) {
        var len = results.rows.length;
        for (var i = 0; i < len; i++) {
            userId = results.rows.item(i).userid;
            alert(results.rows.item(i).userid );
        }
    }, dbErrorHandler)
}
// Transaction error callback
//
function errorCB(err) {
    alert(err);
    dbErrorHandler;
}
// Transaction success callback
//
function successCB() {
    alert(userId);
}