Web SQL 数据库 + JavaScript 循环
我正在尝试解决这个问题,但我自己似乎无法解决......
我正在使用 Web SQL DB,但无法让循环正常使用它。
我使用:
for (var i=0; i<=numberofArticles-1; i++){
db.transaction(function (tx) {
tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [i]);
});
};
我只得到 5。我没有得到增量 i 值。
任何人都可以建议我做错了什么以及我应该考虑什么吗?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
反过来做:
另一种方法是在外部循环的正确方法,在这种情况下是不必要的
Do it the other way around:
And the alternative, the proper way with the loop outside which is unnecessary in this case
看起来该函数是异步的,并且当 tx.executeSql 触发时,循环已完成循环,并且 i 已更改多次。
你可以用闭包来解决这个问题。
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.