2014-08-28 101 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); 
       })(); 
      } 
     }); 
    },