【发布时间】:2012-10-28 13:41:59
【问题描述】:
我想在 for 循环中运行事务。我的代码是:-
for(var i=0;i<len;i++){
// some code
alert('before transaction');
var db = window.openDatabase("Database", "1.0", "Pin Point", 200000);
db.transaction(fetchSubList, errorLists);
alert('after transaction');
}
function fetchSubList(tx) {
tx.executeSql('some QUERY', [], fetchSubListSuccess, errorLists);
}
function fetchSubListSuccess(tx, results) {
alert("fetchSubListSuccess()...");
// some code
}
但问题是在警报之后(事务之前)我直接得到警报(事务之后)并且只有当 for 循环结束时事务才开始......
我按照this 链接解决了,但我仍然无法弄清楚....
【问题讨论】:
-
它是异步的 - 你还期待什么?
-
我认为你不应该在同一个for循环中打开很多数据库
-
db.transaction采用successCallback参数,在其中执行after transaction警报。 -
@Bergi 是的,我知道它的异步...但是我怎样才能实现这一点(我的意思是我希望它作为同步工作)
-
@Barmar 根据循环运行的次数,2 个警报一个接一个地出现……但只有在循环结束后,才会调用 fetchSubList() 函数。 ..
标签: javascript html for-loop transactions web-sql