0

html5 ローカル データベースを作成しました。クエリをループして、クエリ コールバックで外部変数を使用したいと考えています。

以下の例は私がやりたいことではありませんが、私の問題を説明しています:

コード:

db.transaction(function (tx)
{
  for (var i = 1; i < 4; i++)
   {
     tx.executeSql('SELECT title FROM podcast WHERE given_id = ' + i, undefined, function (tx, result)
      {
        console.log(result.rows.item(0).title);
        console.log(i);
      });
   }
});

ログ:

episode1
4
episode2
4
episode3
4

結果は完璧ですが、コールバック内で「i」を使用できません。値は常にループの最後の値です。callback で外部変数を使用するにはどうすればよいですか? 感謝

4

1 に答える 1

0

これを試して:

db.transaction(function (tx) {
   for (var i = 1; i < 4; i++) {
      tx.executeSql('SELECT title,given_id FROM podcast WHERE given_id = ' + i, undefined, function (tx, result) {
         console.log(result.rows.item(0).title);
         console.log(result.rows.item(0).given_id);
      });
   }
});
于 2012-07-24T07:57:47.930 に答える