Javascript关闭不起作用

这是具有循环的函数:


ExecuteQueryWhereQueryAndParamsBothArrays: function (queryArray, paramsArray, idsArray, success, fail, errorLogging) {

            var hasError = false;

            $rootScope.syncDownloadCount = 0;

            $rootScope.duplicateRecordCount = 0;


            $rootScope.db.transaction(function (tx) {

                for (var i = 0; i < paramsArray.length; i++) {

                    window.logger.logIt("id: " + idsArray[i]);


                    var query = queryArray[i];

                    var params = paramsArray[i];

                    var id = idsArray[i];


                    tx.executeSql(query, params, function (tx, results) {

                        incrementSyncDownloadCount(results.rowsAffected);

                    }, function(tx, error) {

                        if (error.message.indexOf("are not unique") > 0 || error.message.indexOf("is not unique") > 0) {

                            incrementDuplicateRecordCount(1);

                            return false;

                        }


// this didn't work:    errorLogging(tx, error, id);

// so I wrapped in in an IIFE as suggested:

                        (function(a, b, c) {

                            errorLogging(a, b, idsArray[c]);

                        })(tx, error, i);


                        return true;

                    });

                }

            }, function () {

                fail();

            }, function () {

                success();

            });

这是正在写入我的消息的errorLogging函数(注意,我无法在同一JavaScript文件中“写入”消息,因为我需要[角度]向该文件中注入另一个引用,这会导致循环参考,代码将无法运行)


var onError = function (tx, e, syncQueueId) {

    mlog.LogSync("DBService/SQLite Error: " + e.message, "ERROR", syncQueueId);

};

我还可以采用什么其他方法阻止它返回同步记录的最后一个“ id”(当它只是出现错误的第一个记录时)?


12345678_0001
浏览 390回答 2
2回答

温温酱

您可能已经更清楚地表明您已经尝试应用找到的解决方案。我需要仔细检查代码,以查看关闭尝试,只有注释掉的旧版本突出显示了该尝试。回想起来,这实际上是一个很好的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript