gpt4 book ai didi

javascript - 返回 executeSQL 函数

转载 作者:行者123 更新时间:2023-11-30 05:41:50 26 4
gpt4 key购买 nike

我正在尝试使用 SQLite 返回 SQL 查询的结果。查询工作正常,我可以在 executeSql 函数中输出结果。但是当我尝试从我的主函数 (returnSQLArray) 访问数组时,它是未定义的。我该如何解决这个问题?

我在另一个需要查询结果的函数中调用 returnSQLArray。

代码:

function returnSQLArray(str) 
{
var db = window.openDatabase("Database", "1.0", "Name", 200000);
var result = [];
db.transaction(
function (tx, results) {
tx.executeSql(str, [], function(tx, rs) {
for(var i=0; i<rs.rows.length; i++) {
var row = rs.rows.item(i)
result[i] = {
id: row['id']
}
}
console.log(result[0].id); //Returns the id
});
}
);
console.log(result[0].id); //Undefined
}

谢谢

最佳答案

这是一个异步问题。 db.transaction 接受一个在 sqlite 事务完成后执行的回调。您在方法末尾显示的 console.log() 语句实际上发生在 result 被填充之前。

编辑添加:

functions getPersons() {
returnSQLArray('SELECT * FROM PERSONS', processPersonsResponse);
}

function returnSQLArray(str, callback) {
...
tx.executeSql(str, [], function(tx, rs) { callback(result); });
}

function processPersonsResponse(response) {
//do work with response
}

关于javascript - 返回 executeSQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20360055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com