В скрипте приложений Google у меня есть HTML-файл с функцией обратного вызова onsuccess, которая вызывает функцию на стороне сервера, которая собирает некоторые данные из рассматриваемой электронной таблицы, а затем возвращает данные, хранящиеся в переменной, обратно вфункция html-скрипта onsuccess.
Я уже сделал это раньше успешно.Вот почему я так озадачен, почему по какой-то причине переменная, которую я возвращаю со стороны сервера, становится «неопределенной», как только она возвращается к функции на стороне клиента.
Я предположил, что это какой-то типОшибка, поэтому я поиграл с преобразованием переменной (которая является очень маленьким массивом с максимум тремя элементами) и / или элементами массива в известные типы (string, int), а затем поместил их в новые переменные и сделалновый массив, который содержит новые элементы известного типа.также проверил исходные элементы массива, используя «typeof», и они, как и ожидалось, являются строками, поэтому я стал еще более запутанным, потому что это не похоже на TypeError.
html функция обратного вызова: (отредактировановниз, чтобы показать основы)
google.script.run.withSuccessHandler(
function (flavors)
{
console.log(flavors); // undefined
}
).getBatchFlavs();
code.gs: (отредактировано, чтобы показать основы)
function getBatchFlavs() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Flavoring");
var data = sheet.getDataRange().getValues();
var flavCell = sheet.getRange(1,3);
data.forEach(function(row,i) {
var rule = flavCell.getDataValidation();
if (rule != null)
{
var flavs = rule.getCriteriaValues();
var flavors = flavs[0];
Logger.log(flavors); // shows exactly what i'm expecting
Logger.log(typeof flavors);
return flavors;
}
})
}
console.log печатает "undefined".
Я включил часть кода .gs, где я получаю данные для переменной, которую я хочу передать на стороне клиента из ячейки с опциями проверки данных, которые являются строками.я подумал, что, возможно, это создает какой-то странный тип переменной или что-то неизвестное, но, как я уже сказал, я уже проверил тип с помощью "typeof", и элементы в массиве flavors действительно являются строками.