如何在Google Apps脚本中设置计时器?

时间:2019-03-22 10:48:13

标签: google-apps-script google-sheets

我已经用Google Apps脚本编写了一个小程序,可以通过Google表格中的“ UI”借入和上交项目。用户在下拉列表中找到一个项目,输入他们的名称,然后单击一个按钮进行借用。同样,在移交设备时,用户会在另一个下拉菜单中找到要移交的项目,然后单击另一个按钮。

我想要的是在项目被注册为借入或移交时向用户显示某种反馈。问题不是显示消息,而是使其消失。因此,我希望有一种计时器可以在几秒钟后删除通知。

我搜索了一个解决方案,发现我也许可以使用'Utilities.sleep',但是无论我如何构造,它似乎只是等待指定的时间,然后立即执行整个代码。 / p>

我在想这样简单的事情:

var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('B2');

range.setValue('The item was successfully registered!');
Utilities.sleep(3000);
range.clear();

我也查看了“ Lock.waitlock”,但也无法正常工作。我确实看到了这篇文章,但是由于某种原因,它对我不起作用: Set Timeout in Google Apps Scripts

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

完全模仿您的代码

  var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('B2');
  range.setValue('The item was successfully registered!');
  SpreadsheetApp.flush();
  Utilities.sleep(3000);
  range.clear();

但是对我来说,我认为这是个坏主意。

您可以使用长时间显示的烤面包:

  var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  activeSpreadsheet.toast('The item was successfully registered!', 'Automation', -1);
  Utilities.sleep(3000);
  activeSpreadsheet.toast('All fine! Relax!', 'Automation', 5 * 1000);