我有一个脚本可以从我Google Sheet
的内容中创建数据库中的联系人。它首先验证我的数据库中是否存在联系人,然后添加联系人。我有成千上万的联系人,所以为了减少现有联系人缓存中的联系人数量,我按州过滤了我的联系人列表。
var leadsCache = [];
function createContact(leads){
var leadState = '';
for(var i=0; i<leads.length; i++){
if(leads[i].state != leadState){
leadState = leads[i].state;
populateLeadsCache(leadState);
}
var existingLead = leadsCache[leads[i].email];
if(existingLead === undefined){
var leadId = createNewLead(leads[i]);
}
}
}
这可以按预期工作,直到我获得新状态的领先优势。代码挂在这里:
leadState = leads[i].state;
我没有收到错误消息。我可以将var
设置为空,如下所示:leadState = ''
,但我无法将值设置为其他值。
在单步执行代码时,我可以看到leads[i].state
有一个新的字符串值。
为什么我无法更改价值?达到预期结果的最佳方法是什么?
更新
我希望Apps Script
有一个更好的错误报告系统。事实证明我在populateLeadsCache
(连续循环)中遇到了问题,但系统似乎停留在leadState = leads[i].state;
上。
任何人都知道如何改进Apps Script
中的错误报告?
答案 0 :(得分:0)
我正在回答这个问题,因此可以将其关闭,但请将此问题留待此处,以防其他人遇到类似的问题而不是问题。
Apps Script
没有强大的错误报告工具,调试器无法在代码的其他部分突出显示真正的问题。
在Apps Script
中收到超时消息时,请注意它可能与代码中断的位置无关。
对我来说,如果所选状态的联系人太多,则下一行代码populateLeadsCache
会出现问题,导致连续循环。