私はこのコードを持っています:
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
非同期で動作するため、発生したと仮定しますが、データを返すためにコールバックを使用しています。なぜ機能しないのか、それを修正する方法を誰かが説明できますか?