值不从数据库返回

时间:2013-09-03 11:51:48

标签: javascript database

我正在尝试从此

中获取值来自数据库
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 ,而该值则显示在控制台中。

我觉得数据库操作需要时间来执行

请分享您的想法。

1 个答案:

答案 0 :(得分:1)

你的感觉是正确的。

在Javascript中,你不能(不应该)“等待”发生某些事情,而使用的模型则相反,更像是“当你完成时给我打电话”。

传递给提取数据的executeSQL的函数将在稍后调用,你应该围绕这种方法重新设计你的界面(而不仅仅是设置变量id id一旦到达,就需要进行剩余的处理。