2016-08-23 42 views
0

我有一个脚本,可以从我的Google Sheet的内容中创建我的数据库中的联系人。它首先验证我的数据库中不存在联系人,然后添加联系人。我有成千上万的联系人,所以为了减少现有联系人缓存中的联系人数量,我按状态过滤了我的联系人列表。使用应用脚本更改var值失败

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有一个新的字符串值。

为什么我无法更改该值?什么是实现我想要的结果的最佳方式?

UPDATE

我希望能有一个更好的错误报告系统为Apps Script。事实证明,我在populateLeadsCache(连续循环)中遇到了一个问题,但系统似乎卡在leadState = leads[i].state;

任何人都知道如何改善Apps Script中的错误报告?

回答

0

我正在回答问题以便可以关闭,但如果其他人遇到类似问题并不是真正的问题,请将问题留在此处。

Apps Script没有健壮的错误报告工具,调试器未能突出显示代码另一部分的真实问题。

当获得在Apps Script超时消息知道它可能没有什么关系,其中代码的出现打破。

对于我来说,代码populateLeadsCache下一行有一个问题,如果所选择的国家有太多的接触,导致连续循环。