Я пытаюсь создать приборную панель для своего класса (асинхронный c запуск, асинхронный c продолжительность, асинхронный c тестирование) ...
Моя проблема в том, что я динамически создаю функции с помощью eval
(я знаю, что это путь на темную сторону). Эти функции, созданные динамиком c, больше не живут, чем for
l oop, в которых они были созданы?
function onOpen() {
const FUNC_STR = 'course';
var evalString = '';
const response = Classroom.Courses.list();
const courses = response.courses;
for(var index in courses) {
const course = courses[index]
evalString += 'function ' + FUNC_STR + course.id + '() { ' + FUNC_STR + '(' + course.id + ') }';
eval(evalString);
}
const ui = SpreadsheetApp.getUi();
var mymenu = ui.createMenu('Classroom');
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
const course = courses[i];
mymenu.addItem(course.name, FUNC_STR + course.id);
}
mymenu.addToUi();
}
}
function course(id ) {
SpreadsheetApp.getActiveSheet().getRange('A1').setValue(Classroom.Courses.get(id).name);
}