使用apps脚本更改var值失败

时间:2016-08-23 16:34:46

标签: javascript google-apps-script var

我有一个脚本可以从我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中的错误报告?

1 个答案:

答案 0 :(得分:0)

我正在回答这个问题,因此可以将其关闭,但请将此问题留待此处,以防其他人遇到类似的问题而不是问题。

Apps Script没有强大的错误报告工具,调试器无法在代码的其他部分突出显示真正的问题。

Apps Script中收到超时消息时,请注意它可能与代码中断的位置无关。

对我来说,如果所选状态的联系人太多,则下一行代码populateLeadsCache会出现问题,导致连续循环。