0

我想在 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 循环结束时,交易才开始......

我按照这个链接解决了,但我仍然无法弄清楚....

4

1 回答 1

1

这是不可能的......我们需要重构代码,使代码看起来像这样:-

    db.transaction(function(tx) 
    {

      // some value
      var loop_limit = 10

      for(var i=0; i<loop_limit;i++ ){ // ITERATE HERE
        tx.executeSql(Statement, [],Sucess, error);
      }

    });
于 2012-12-06T08:43:17.383 回答