Как установить таймер в Google Apps Script? - PullRequest
0 голосов
/ 22 марта 2019

Я написал небольшую программу в Google Apps Script для заимствования и передачи предметов через «пользовательский интерфейс» в Google Sheets.Пользователь находит элемент в раскрывающемся списке, вводит его имя и нажимает кнопку для заимствования.Аналогично, при передаче устройства пользователь находит элемент для передачи в другом раскрывающемся списке и нажимает другую кнопку.

Я хотел бы показать пользователю своего рода обратную связь, когда элемент был зарегистрированкак заимствованные или переданные. Проблема не в том, чтобы показать сообщение, а в том, чтобы оно снова исчезло.Поэтому мне нужен какой-то таймер, который удаляет уведомление через несколько секунд.

Я искал решение и обнаружил, что могу использовать '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

Любая помощь будет оценена.

1 Ответ

1 голос
/ 22 марта 2019

Для полной имитации вашего кода

  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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...