WebSQL循环数组onComplete Handler

时间:2014-08-28 19:55:30

标签: javascript web-sql

我想建立一个现有的解决方案,以找出数组中所有元素成功插入的时间。

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循环/函数中提供一个优雅的自包含解决方案,可以在成功时进行单个回调。

1 个答案:

答案 0 :(得分: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);
                })();
            }
        });
    },