我试图创建一个可以从websql中的表中读取数据的函数,但是当我运行代码时,只有警报2处的数组中有数据。
代码如下:
function read(table, keys){
var data = [];
var db = window.openDatabase("Database", "1.0", "PMM", 200000);
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM ' + table, [], function (tx, results) {
var len = results.rows.length;
for(var i = 0; i < len; i++){
var row = [];
for(key of keys){
row.push(results.rows.item(i)[key]);
}
data.push(row);
}
alert(data + " --2--");
});
alert(data + "--3--");
});
alert("--4--")
return data;
}
var a = read("expenses", ['name', 'cost']);
alert(a + "--1--");
我希望警报消息如下运行 --2-- --3-- --4-- --1-
但是它做的就是返回 --4-- --1-- --3-- --2-
为什么?
答案 0 :(得分:-1)
我不知道您调用的函数是什么样的,但是根据您的描述,我认为它们是异步的。
取决于它们的实现,您可能可以使用.then()或另一个回调来等待它们的执行。
查看此内容以了解有关异步功能的更多信息:https://javascript.info/callbacks