无法使用javascript在数组中获取select查询的结果

Mar*_*sat 1 javascript arrays sqlite

尝试使用java脚本将选择查询的结果存储到数组时,我遇到了问题.问题是在函数内部,数组包含正确的值但在它之外是空的,即使我使用全局变量它仍然是空的!

db.transaction(function (transaction) {
    var sql = "SELECT * FROM Question where idEnq=" + idEn;

    transaction.executeSql(sql, undefined, function (transaction, result) {
        var res = document.getElementById('results');
        res.innerHTML = "<ul>";
        if (result.rows.length) {
            for (var i = 0; i < result.rows.length; i++) {
                var row = result.rows.item(i);
                ch[i] = new qu(row.id, row.text, row.type);
                res.innerHTML += '<li>' + row.id + '&nbsp;' + ch[i].text + '&nbsp;' + ch[i].type + '</li>';
            }
            tablo = ch;
        } else {
            alert("No choices");
            res.innerHTML += "<li> No choices </li>";
        }

        res.innerHTML += "</ul>";
    }, onError);
}); // here the ch and the tablo array are empty
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 5

您正在使用异步功能.任何想要使用这些函数"返回"的数据的东西都需要在回调中.当然,您可以将此数据分配给全局变量,但该变量仅在回调运行(异步)后才具有该值.