Javascript 为什么不按顺序调用函数?
我正在尝试创建一个函数,可以从websql中的表中读取数据,但是当我运行代码时,在警报2处数组中只有数据 代码如下:Javascript 为什么不按顺序调用函数?,javascript,Javascript,我正在尝试创建一个函数,可以从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 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-,
-一,-
但它所做的是返回
-4-,
-1-,
-3-,
-二,-
为什么?我不知道您调用的函数是什么样的,但根据您的描述,我相信它们是异步的 根据它们的实现,您可能会使用.then或其他回调等待它们的执行 查看此项了解有关异步函数的更多信息: