2016-08-23 55 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下一行有一個問題,如果所選擇的國家有太多的接觸,導致連續循環。