0
我想在循環中包含的executeSql函數中使用循環變量。但是,如果我不使用閉包,循環變量會獲取最後一個值。當我使用閉包時,我沒有從executeSql函數中得到結果列表。示例:webkit executionql語句和循環問題
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);
}
有了這個,我得到了「我」的權利。但「結果」未定義。
我試圖通過 「TX」 和 「i」 是這樣的:
(function(tx,results) //success function
{
//do something
})(tx,null,i)
有了這個,我明白爲什麼我得到 「成果」 爲空。我想了解如何獲得executeSql的正確結果。
謝謝大衛。這很有幫助。 – caranhithion
不適合我。我發佈了我的問題http://stackoverflow.com/questions/19313901/query-in-loop-not-working-for-ios –