2014-08-28 92 views
0

我想建立一个现有的解决方案,以确定何时数组中的所有元素都已成功插入。WebSQL循环数组onComplete处理程序

Web SQL Database + Javascript loop

insert: function(configurationVOs) { 
    var self = this; 

    this.database.transaction(function(transaction){ 
     var total = 0; 
     for(var i=0; i<configurationVOs.length; i++) { 
      (function(configurationVO) { 
       var params = [configurationVO.id, configurationVO.key, configurationVO.value, configurationVO.type]; 
       transaction.executeSql(self.configurationInsertSQL, params, self.insertComplete, self.insertError); 
      })(configurationVOs[i]); 
     } 
    }); 
}, 

,如果有人可以提供内for循环/功能的优雅独立的解决方案,可以在成功做一个回调。

回答

0

我的尝试,请编辑/建议任何改进。

insert: function(configurationVOs) { 
     var self = this; 
     this.database.transaction(function(transaction){ 
      var total = 0; 
      for(var i=0; i<configurationVOs.length; i++) { 
       (function() { 
        var params = [configurationVOs[i].id, configurationVOs[i].key, configurationVOs[i].value, configurationVOs[i].type]; 
        transaction.executeSql(self.configurationInsertSQL, params, function(transaction, resultSet){ 
         if(++total == configurationVOs.length) { 
          self.insertComplete(); 
         } 
        }, self.insertError); 
       })(); 
      } 
     }); 
    },