Kar*_*arl 2 javascript arrays jquery steroids
我试图将一个对象数组返回到父函数,以便我可以将它们附加到我的HTML中的div.
我的功能似乎运行不正确的序列.这是我的功能:
function getRounds() {
var db = connectDB();
var items = new Array();
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM round', [], function(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
items.push(results.rows.item(i));
}
alert('ONE: '+ JSON.stringify(items));
return items;
}, errorCB);
alert('TWO: '+ items)
});
alert('THREE: '+ items);
return items;
}
Run Code Online (Sandbox Code Playgroud)
发生的事情是我收到"三:",然后是"两个:",然后是"一个:[对象]"的警报.
从逻辑上讲,它应该反过来警告,因为函数是嵌套的,One返回一个对象数组,这正是我需要返回到main函数(getRounds).
我有什么想法可以达到这个目的吗?
我正在使用Appgyver的Steroids,有关Web SQL数据库存储的文档可以在这里找到:http://docs.appgyver.com/en/stable/cordova_storage_storage.md.html#SQLResultSetRowList
tym*_*eJV 10
这是因为电话是异步的!你需要使用回调!
function getRounds(callback) {
var db = connectDB();
var items = new Array();
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM round', [], function(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
items.push(results.rows.item(i));
}
alert('ONE: '+ JSON.stringify(items));
callback(items)
}, errorCB);
});
}
getRounds(function(items) {
console.log(items);
});
Run Code Online (Sandbox Code Playgroud)