Моя функция Google Scripts продолжает работать даже после возврата следующей функции.
Подводя итог, у меня есть функция (nightTargetSelection), которая вызывает другую функцию (dayStart). И как только будет вызвана вторая функция, я хочу, чтобы первая перестала работать.
Я урезал функцию и удалил все, что не должно относиться к этому посту. Но, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Во-первых, я вызываю форму ввода пользователя через следующий код в GS:
function roleWakeUp (roleName, j){
var roleStrAppend = "<div id='id_role_name' style='display:none;'>" + roleName + "</div>";
var jAppend = "<div id='id_j' style='display:none;'>" + j + "</div>";
var actionInputDlg = HtmlService.createHtmlOutputFromFile('night')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(600)
.setHeight(425);
var wakeUpText = roleName + " wakes up."
actionInputDlg.append(roleStrAppend).append(jAppend);
SpreadsheetApp.getUi().showModalDialog(actionInputDlg, wakeUpText);
}
Тогда у меня есть форма, отправленная пользователем через HTML / JS:
<script>
selected = select.options[select.selectedIndex].value
google.script.run.withSuccessHandler(selected).nightTargetSelection(selected);
google.script.host.close();
</script>
Вернувшись в GS, у меня есть nightTargetSelection (проблемная функция, которая мне нужна, помогла исправить)
function nightTargetSelection (selected){
return dayStart();
}
Наконец, у меня есть функция dayStart, которая вызывается в nightTargetSelection.
function dayStart() {
Browser.msgBox("DAY START");
//If I do not close the msgBox within 6 minutes (GS timeout period), then nightTargetSelection times out.
roleWakeUp (roleName, j);
}
Я ожидаю, что функция nightTargetSelection перестает работать, как только вызывается dayStart.
К сожалению, этого не происходит, и функция nightTargetSelection завершается только при вызове следующего nightTargetSelection.
Как видите, функция dayStart вызывает roleWakeUp, что делает его циклом между функциями. Я пропустил включение деталей цикла в этот вопрос, потому что я не считаю, что это актуально. Дайте мне знать, если это уместно, и я предоставлю более подробную информацию.