我有一个脚本从我的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
的错误报告?
我正在回答这个问题,所以它可以关闭,但把问题留在这里,以防其他人有类似的问题,这不是真正的问题。
Apps Script
没有强大的错误报告工具,调试器无法突出显示代码另一部分的真正问题。
当在Apps Script
中获得超时消息时,请注意它可能与代码出现中断的地方没有任何关系。
对于我来说,下一行代码populateLeadsCache
有一个问题,如果选择的状态有太多的接触,这会导致一个连续的循环。