1

このようにデータベースから値を取得しようとしています

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;
}

実行中、メソッドは変数に戻りませんidbatsmanIdが、値はコンソールに表示されます。

データベース操作の実行に時間がかかっているように感じます。

あなたの考えを共有してください。

4

1 に答える 1

1

あなたの感覚は正しいです。

Javascript では、何かが起こるのを「待つ」ことはできません (すべきではありません)。

データを抽出するために渡された関数はexecuteSQL後で呼び出されるため、このアプローチに合わせてインターフェイスを作り直す必要があります (つまり、変数を設定するだけでなく、変数が到着idしたら、それで必要な残りの処理を行います)。id

于 2013-09-03T12:00:11.593 に答える