使用应用程序脚本更改 var 值失败

Changing the var value with apps script fails

我有一个脚本可以根据 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 如果所选状态的联系人太多,会导致连续循环。