首页 > 解决方案 > 如何在 Google Apps 脚本中设置计时器?

问题描述

我在 Google Apps Script 中编写了一个小程序,通过 Google 表格中的“UI”借用和提交项目。用户在下拉列表中找到一个项目,输入他们的名字,然后单击一个按钮进行借阅。类似地,当提交设备时,用户在另一个下拉列表中找到要提交的项目,然后单击另一个按钮。

我想要的是当物品被登记为借用或上交时向用户显示某种反馈。问题不是显示一条消息,而是让它再次消失。因此,我想要某种计时器,它可以在几秒钟后删除通知。

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

我在想这样简单的事情:

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

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

我还查看了“Lock.waitlock”,但也无法使其正常工作。我确实看到了这篇文章,但由于某种原因它对我不起作用: 在 Google Apps 脚本中设置超时

任何帮助,将不胜感激。

标签: google-apps-scriptgoogle-sheets

解决方案


为了完全模仿你的代码

  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);

推荐阅读