使用apps脚本修改var值失败

Changing the var value with apps script fails

本文关键字:失败 var 修改 apps 脚本 使用      更新时间:2023-09-26

我有一个脚本从我的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有一个问题,如果选择的状态有太多的接触,这会导致一个连续的循环。