gpt4 book ai didi

javascript - 从异步函数获取数据

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:16 28 4
gpt4 key购买 nike

我有这个代码:

    function getData(){
db.transaction(function(tx){
tx.executeSql('SELECT * from q', [], function(tx, result){
var q = [];
for (var i=0; i < result.rows.length; i++) {
q.push(result.rows.item(i));
};
console.log(q.length); // 3
returnData(q);
});
});
}

function returnData(data){
console.log(data.length); // 3
return data;
}

var q = getData(); // undefined

它没有按预期工作(它不返回任何东西)。假设发生了,因为 db.transaction 工作异步,但我正在使用回调返回数据。有人可以解释为什么它不起作用以及如何解决这个问题吗?

最佳答案

执行此操作的标准方法是包含您自己的回调,如下所示:

function getData(callback){
db.transaction(function(tx){
tx.executeSql('SELECT * from q', [], function(tx, result){
var q = [];
for (var i=0; i < result.rows.length; i++) {
q.push(result.rows.item(i));
};
console.log(q.length); // 3
callback(returnData(q));
});
});
}

function returnData(data){
console.log(data.length); // 3
return data;
}

getData(function(q) {
/* do something with q */
});

关于javascript - 从异步函数获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197347/

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