Как избежать кеширования вызывающих функций - PullRequest
0 голосов
/ 12 апреля 2019

В Google Sheets я использую этот код для создания рабочей папки и рабочего календаря после того, как пользователь отредактировал некоторые ячейки, но у меня есть некоторые проблемы: createFolder () ожидает возврата createCalendar () и только после этого он выполняет.

function onEdit(e) {
  var eRange = SpreadsheetApp.getActiveSpreadsheet().getActive().getActiveRange();
  var eRow = eRange.getRow();
  var eCol = eRange.getColumn();

  if (eCol == 1) {
        creatieFolder(eRow);
        createCalendar(eRow);
  }
}

function createFolder(eRow) {
    var folderID = DriveApp.getFolderById(parentFolderID).createFolder("test name").getId();
    SpreadsheetApp.getActiveSpreadsheet().getActive().getRange(eRow, 2).setValue(folderID);

  return folderID;
}

function createCalendar(eRow) {
  var calendar = CalendarApp.createCalendar("test name");
  SpreadsheetApp.getActiveSpreadsheet().getActive().getRange(eRow, 3).setValue(calendar.getId());
  return calendar.getId();
}

Я полагаю о кешировании, потому что я вижу значение folderID во 2-м столбце после выполнения createCalendar () в то же время, что и calendarID в 3-м столбце.И я хочу видеть folderID перед calendarID.Как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...