我正在尝试从此
中获取值来自数据库var batsmanId = getBatsmanid(localStorage.getItem('batsmanOne'));
以下是方法定义:
function getBatsmanid(name){
var id;
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM player where player_name = ?',[name], function(tx, results) {
id = results.rows.item(0).player_id;
console.log('Batsman ID: '+id);
});
});
return id;
}
执行时,该方法未将id
返回到变量batsmanId
,而该值则显示在控制台中。
我觉得数据库操作需要时间来执行。
请分享您的想法。
答案 0 :(得分:1)
你的感觉是正确的。
在Javascript中,你不能(不应该)“等待”发生某些事情,而使用的模型则相反,更像是“当你完成时给我打电话”。
传递给提取数据的executeSQL
的函数将在稍后调用,你应该围绕这种方法重新设计你的界面(而不仅仅是设置变量id
id
一旦到达,就需要进行剩余的处理。