Javascript 为什么我的谷歌应用程序脚本自动刷新代码不起作用?

Javascript 为什么我的谷歌应用程序脚本自动刷新代码不起作用?,javascript,google-apps-script,Javascript,Google Apps Script,我写了一个简单的代码来自动刷新Google表单中的数字。我使用应用程序脚本将I打印到相关位置。数据需要每15秒刷新一次。但它不起作用。它应该在第15秒写入0,在第30秒写入1,在第45秒写入2。但是0不写1,它只写最后一个循环中的2。为什么它不每15秒写一次数据 function exampleFunction() { var app = SpreadsheetApp; var spreadSheet = app.getActiveSpreadsheet(); var activeS

我写了一个简单的代码来自动刷新Google表单中的数字。我使用应用程序脚本将
I
打印到相关位置。数据需要每15秒刷新一次。但它不起作用。它应该在第15秒写入
0
,在第30秒写入
1
,在第45秒写入
2
。但是
0
不写
1
,它只写最后一个循环中的
2
。为什么它不每15秒写一次数据

function exampleFunction() {
  var app = SpreadsheetApp;
  var spreadSheet = app.getActiveSpreadsheet();
  var activeSheet = spreadSheet.getSheetByName("sheetname");
  var i = 0;

  while(true){
    activeSheet.getRange(1, 1).setValue(i);
    i++;
    Utilities.sleep(15000);
    
    if(i == 3){
      break;
    }
  }

出于文档原因,我可以确认Tanaike的评论,它与
SpreadsheetApp.flush()
配合使用,正如预期的那样:

function exampleFunction() {
  var app = SpreadsheetApp;
  var spreadSheet = app.getActiveSpreadsheet();
  var activeSheet = spreadSheet.getSheetByName("sheetname");
  var i = 0;

  while(true){
    activeSheet.getRange(1, 1).setValue(i);
    SpreadsheetApp.flush()
    i++;
    Utilities.sleep(15000);
    
    if(i == 3){
      break;
    }
  }
}

我认为在这种情况下,需要使用
SpreadsheetApp.flush()
。因为在脚本运行时,
setValue
会修改单元格值。例如,将
SpreadsheetApp.flush()
放在
activeSheet.getRange(1,1).setValue(i)行之后如何?你说的很管用。问题解决了,谢谢。谢谢你的回复。我很高兴你的问题解决了。