处理数据库事务返回

Handling database transaction returns

本文关键字:返回 事务 数据库 处理      更新时间:2023-09-26

这里我有一个函数,它应该返回秒数作为变量sec,但return语句在数据库事务之前运行,所以我一直没有定义。我能做些什么来确保交易在返回调用之前完成。类似于XMLHttpRequestonreadystatechange

function getLevelSeconds (index) {
    var sec;
    db.transaction(function (tx) {tx.executeSql('SELECT * FROM SPLevelData', [], function (tx, result) {sec=result.rows.item(index).seconds;}, errorCB)}, errorCB);
    return sec;
}

实现回调

function getLevelSeconds (index, callback) {
    db.transaction(function (tx) {
        tx.executeSql('SELECT * FROM SPLevelData', [], function (tx, result) {
            sec=result.rows.item(index).seconds;
            typeof callback == "function" && callback(sec);
        }, errorCB);
    }, errorCB);
}
getLevelSeconds(index, function(sec) {
    alert(sec);
});

有关详细信息,请参阅JavaScript:4个异步函数依次等待对方完成后再继续?答复