Javascript Google脚本createEvent()函数突然停止工作

Javascript Google脚本createEvent()函数突然停止工作,javascript,google-apps-script,Javascript,Google Apps Script,最后,我能够创建一个函数来自动更新日历中的事件。我测试了它,它工作得非常好;它将在日历中添加新事件,当用户编辑它时,它将删除以前的事件并创建新事件以及新ID 然而第二天,当我再次测试它时,它不起作用,我检查了code.gs中的所有函数,只有这个函数有问题 function updateCalendar(request) { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var ran

最后,我能够创建一个函数来自动更新日历中的事件。我测试了它,它工作得非常好;它将在日历中添加新事件,当用户编辑它时,它将删除以前的事件并创建新事件以及新ID

然而第二天,当我再次测试它时,它不起作用,我检查了code.gs中的所有函数,只有这个函数有问题

function updateCalendar(request) {
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow(); 
var range = sheet.getRange(2,1,lastRow,13);
var values = range.getDisplayValues(); 
var calendar = CalendarApp.getCalendarById('XXXXXXXXXXXXXXXXXXX@group.calendar.google.com');
var numValues = 0;
for (var i = 0; i < values.length; i++) {    
    if (values[i][0].length > 0) {      
        if (values[i][12] == undefined) {
            var newEvent = calendar.createEvent("booked", request.date, request.endTime);
            var newEventId = newEvent.getId().split('@')[0];
            //mark as entered, enter ID
            sheet.getRange(i+2,13).setValue('y');
            sheet.getRange(i+2,12).setValue(newEventId);
        } 
        else if (values[i][12] == 'y') {
            var eventEditId = calendar.getEventSeriesById(values[i][11]);
            eventEditId.deleteEventSeries();
            var newEvent = calendar.createEvent("booked", request.date, request.endTime);
            var newEventId = newEvent.getId().split('@')[0];;
            //mark as entered, enter ID
            sheet.getRange(i+2,13).setValue('y');
            sheet.getRange(i+2,12).setValue(newEventId);
        } 
    }
    numValues++;
}
};
函数updateCalendar(请求){
var sheet=SpreadsheetApp.getActiveSheet();
var lastRow=sheet.getLastRow();
var范围=sheet.getRange(2,1,最后一行,13);
var values=range.getDisplayValues();
var calendar=CalendarApp.getCalendarById('XXXXXXXXXXXXXXXXXXX@group.calendar.google.com');
var numValues=0;
对于(var i=0;i0){
if(值[i][12]==未定义){
var newEvent=calendar.createEvent(“booked”、request.date、request.endTime);
var newEventId=newEvent.getId().split('@')[0];
//标记为已输入,输入ID
表.getRange(i+2,13).setValue('y');
sheet.getRange(i+2,12).setValue(newEventId);
} 
else if(值[i][12]=“y”){
var eventEditId=calendar.getEventSeriesById(值[i][11]);
eventEditId.deleteEventSeries();
var newEvent=calendar.createEvent(“booked”、request.date、request.endTime);
var newEventId=newEvent.getId().split('@')[0];;
//标记为已输入,输入ID
表.getRange(i+2,13).setValue('y');
sheet.getRange(i+2,12).setValue(newEventId);
} 
}
numValues++;
}
};

我还检查了日历设置和资料,并确保我已登录到管理员帐户。非常感谢您提供的任何帮助。

我只是简单地将“未定义”更改为空字符串“”,它再次起作用。但同样,出于某种原因,我很好奇为什么上次使用“undefined”命令时它能工作

如果代码在工作和不工作之间没有变化,那么外部会发生变化。也许是许可问题?还是节流问题?否则,代码中的某些内容将发生更改。知道什么不对劲,除了现在不起作用之外,会有帮助。例如,是否有例外?这也是为什么有一个最小的可重复的例子是重要的。请看一些关于这方面的指导。谢谢你的回复,出于某种原因,我让它再次工作。问题在于(值[i][12]==未定义)…我将其更改为(值[i][12]==”),它再次工作。我只是想知道为什么上次它起作用了…也许是一些未定义的东西?“undefined”是否表示该值为空?
'==undefined
在JavaScript中应为true。如果你不知道自己在做什么,也不喜欢这样可爱的问题,那么你总是使用相同的equals的其中一个原因——即
'===undefined
将是错误的。有关原因,请参阅我最后的评论。你真的应该解决这个问题。除非你喜欢这样折磨自己,否则你真的应该坚持下去。否则你会在最意想不到的时候再次面临同样的问题。