这是具有循环的函数: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”(当它只是出现错误的第一个记录时)?
2 回答

温温酱
TA贡献1752条经验 获得超4个赞
您可能已经更清楚地表明您已经尝试应用找到的解决方案。我需要仔细检查代码,以查看关闭尝试,只有注释掉的旧版本突出显示了该尝试。回想起来,这实际上是一个很好的问题。
添加回答
举报
0/150
提交
取消