我有这个代码:
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
异步工作,但我使用回调来返回数据。有人可以解释为什么它不起作用以及如何解决这个问题吗?