Javascript 如何使用异步数据库
我有:Javascript 如何使用异步数据库,javascript,html,Javascript,Html,我有: for(var i=0;i使用匿名函数捕获变量: for (var i=0;i<2;i++) { dbo.transaction( function(myTrans) { myTrans.executeSql( 'UPDATE myTable SET myField=0 WHERE myID=?' ,[i] ) } ) }
for(var i=0;i使用匿名函数捕获变量:
for (var i=0;i<2;i++) {
dbo.transaction(
function(myTrans) {
myTrans.executeSql(
'UPDATE myTable SET myField=0 WHERE myID=?'
,[i]
)
}
)
}
for(var i=0;i使用匿名函数捕获变量:
for (var i=0;i<2;i++) {
dbo.transaction(
function(myTrans) {
myTrans.executeSql(
'UPDATE myTable SET myField=0 WHERE myID=?'
,[i]
)
}
)
}
for(var i=0;i关于bug是什么,您可能是对的。解决方法是在循环内部封装一个匿名函数,其中包含一个新的、不变的i
变量,供封闭的代码查看
for (var i=0;i<2;i++) {
(function(i){
dbo.transaction(
function(myTrans) {
myTrans.executeSql(
'UPDATE myTable SET myField=0 WHERE myID=?'
,[i]
)
}
)
}(i));
}
甚至可以将var i
替换为let i
,但据我所知,在这一点上还没有达成一致意见。关于bug是什么,您可能是对的。解决方法是在循环内部封装一个匿名函数,其中包含一个新的、不变的i
变量b请参阅随附的代码
for (var i=0;i<2;i++) {
(function(i){
dbo.transaction(
function(myTrans) {
myTrans.executeSql(
'UPDATE myTable SET myField=0 WHERE myID=?'
,[i]
)
}
)
}(i));
}
甚至可以将var i
替换为let i
,但据我所知,在这一点上尚未达成共识。“let(i=i)”“哦,是的,那就更干净了。”CF.菲利普森:“我已经编辑了这个帖子,提到可以用<代码>替换<代码> var >代码>让不做其他更改。我认为我们可以同意这是更干净的。这不是最好的例子。我的讽刺是为了ES:Harmony,不是为了你的解释和代码示例。事实上,你的代码非常干净。我只是在一般情况下很难使用JavaScript。“let(I=I)”“哦,是的,那就更干净了。”CF.菲利普森:“我已经编辑了这个帖子,提到可以用<代码>替换<代码> var >代码>让不做其他更改。我认为我们可以同意这是更干净的。这不是最好的例子。我的讽刺是为了ES:Harmony,不是为了你的解释和代码示例。事实上,你的代码非常干净。我只是在一般情况下很难使用JavaScript。