I'm trying to figure this out but can't seem to on my own...
I'm playing with Web SQL DBs and I can't get a loop to work properly with it.
I use:
for (var i=0; i<=numberofArticles-1; i++){
db.transaction(function (tx) {
tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [i]);
});
};
And I get only 5's.. I don't get the incremental i values.
Can anyone suggestion what I'm doing wrong and what I should be thinking about?
It looks like the function is asynchronous, and that by the time
tx.executeSql
fires, the loop have finished looping andi
has been changed several times.You can solve this with a closure.
Do it the other way around:
And the alternative, the proper way with the loop outside which is unnecessary in this case