I am trying to create a function that can read data from a table in websql, yet when i ran the code, i only had data in the array at alert 2.
Here is the code:
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--");
i expected the alert messages to run as follows --2--, --3--, --4--, --1--
but what it did was return --4--, --1--, --3--, --2--
why?