私はループで格納されたexecuteSql関数でループ変数を使用しようとしています。しかし、私はクロージャを使用しない場合、ループ変数は最後の値を取得します。私がクロージャを使用すると、私はexecuteSql関数から結果リストを取得しません。例:Webkit executeql文とループの問題
for (var i = 0; i < count; i++) {
tx.executeSql('SELECT AColumn FROM ATable WHERE refID=' + i, [],
function(tx,results) //success function
{
//do something
}
,errorfunction);
}
成功関数 "i"は常に "count + 1"です。私はこのように私のコードを変更し、これを解決するために
:これにより
for (var i = 0; i < count; i++) {
tx.executeSql('SELECT AColumn FROM ATable WHERE refID=' + i, [],
(function(tx,results) //success function
{
//do something
})(i)
,errorfunction);
}
、私は "i" の権利を取得します。しかし、 "結果"は未定義です。私は「結果」はnullとして取得する理由を私は理解してこれにより
(function(tx,results) //success function
{
//do something
})(tx,null,i)
:
は、私が「私」は、このような「TX」とを渡そうとしました。私はexecuteSqlの正しい結果をどうやって得ることができるかを知りたい。
ありがとうございました。これは役に立ちます。 – caranhithion
私のために働いていない。私は私の質問を投稿しましたhttp://stackoverflow.com/questions/19313901/query-in-loop-not-working-for-ios –