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