[英]Simple Apps Script timing out on execution
我只是 C+ 的初級水平,我正在嘗試執行我認為是此電子表格的 Apps 腳本中的一個簡單腳本: https://docs.google.com/spreadsheets/d/1lu0_B1OdjU6Y5KF4zomCpQNiGCGklVoZDF8rQ8HQBhQ/edit?usp=sharing The執行超時,它沒有給我太多關於原因的信息,但它必須與我更改的模板部分有關。 即任務 3 中的 for 循環。也許我也用這種方式連接? 我不熟悉 Java,可能遺漏了一些非常明顯的東西。 我也不熟悉它應該如何設置,所以請善待。
function routineActivator() {
/**
Task 1) Open the Event Calendar.
**/
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarId = 'myEmail';
var eventCal = CalendarApp.getCalendarById(calendarId);
/**
Task 2) Pull each shift information into the code, in a form that the code can understand.
**/
var routine = spreadsheet.getRange('A4:D74').getValues();
/**
Task 3) Do the work!
**/
for (x=0; x<routine.length; x++) {
var task = routine[x];
var des = task[3]
if(des=1){
var label = task[2];
var startTime = task[0] + task[1];
while (des != 2){
var endTime = task[0] + task[1];
task++;
}
eventCal.createEvent(label, startTime, endTime);
}
}
/**
Task 4) Make it easy to use.
**/
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Sync to Calendar')
.addItem('Schedule tasks now', 'routineActivator')
}
}
我試圖運行它,但它循環並超時。
問題是以下將永遠循環並且永遠不會退出:
if (des = 1) {
while (des != 2) {
}
}
des
將始終為1
,因為您使用的是賦值運算符=
而不是比較運算符===
。
但是,更改運算符不足以解決問題,因為當des
為1
時,它不是2
,並且while
循環永遠不會退出。 你需要在while
循環中修改des
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.