gpt4 book ai didi

javascript - 如何返回这个值?

转载 作者:行者123 更新时间:2023-12-02 19:24:45 26 4
gpt4 key购买 nike

我正在使用 phonegapjQueryjQuery mobile 构建移动应用程序。我想在我的应用程序中使用 SqLite 数据库来存储一些用户信息。 (我无法使用本地存储,我想对数据进行搜索/排序操作)

这是我正在编写的代码,

function getAccountInformation(){
var accounts = {};
db.transaction(function(transaction) {
transaction.executeSql('SELECT * FROM account;', [],
function(transaction, result) {
if (result != null && result.rows != null) {
for (var i = 0; i < result.rows.length; i++) {
var item={};
var row = result.rows.item(i);
for(var prop in row){
item[prop]=row[prop]
}
accounts[i]=item;
}
}
},errorHandler
);
},errorHandler,nullHandler);
console.log(JSON.stringify(accounts));
}

如果我将这个 console.log(JSON.stringify(accounts)); 放在 for 循环 的结束 } 之后,它会显示正确的输出。

但如果我把它放在现在的位置,{} 就会作为输出打印出来。

如何使 getAccountInformation() 函数将该 accounts 对象返回给我的其他函数?我将在其中使用 jQuery 呈现输出。

我想要做的是简单地通过wrting返回这个accounts对象返回帐户;

最佳答案

因为 SqLite 函数是异步的,所以您不能只返回值。

我会让 getAccountInformation 接收回调,如下所示:

function getAccountInformation(callbackfn)
{
db.transaction(function(transaction),
.....,
function (transaction, result)
{
if (result != null)
{
callbackfn(result);
}
});
}

通过这种方式,您将在执行数据库请求时调用您的函数。

关于javascript - 如何返回这个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157099/

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