Я пытаюсь импортировать библиотеку скриптов Apps в App Maker, как показано на этой странице: https://developers.google.com/appmaker/scripting/libraries
Однако, после успешного импорта ее в приложение App Maker, при попытке использовать библиотеку вСерверный скрипт (набрав «TestLibrary.», как правило, когда появляется автозаполнение), он немедленно выдает сообщение «Неожиданная клиентская ошибка» в снэк-баре и всплывающее окно «Требуется обновление» .
ЭтоВажно отметить, что библиотека содержит много функций, каждая с комментарием JSDoc.Однако в ходе тестирования я обнаружил, что многие из них не вызывают аварийного завершения работы App Maker.Мой вывод заключается в том, что не MSDoc-комментарии в целом приводят к сбою App Maker, а скорее что-то, что конкретно связано с определенными.
Я прилагаю пример функции-нарушителя, которая заставляет App Maker отображатьописанное поведение.
Если комментарии JSDoc удалены, то функция работает без проблем.Если комментарии JSDoc оставить в исходном коде библиотеки, то ошибка выглядит так, как описано.
Достаточно затруднительно, если библиотека импортируется в другой проект Apps Script, а не в приложение App Maker, тогда она будет функционироватьКак и ожидалось, JSDoc комментирует нетронутыми или нет.
Приведенное выше исследование позволяет мне полагать, что проблема заключается в механизме синтаксического анализа JSDoc, который используется App Maker для предоставления предложений автозаполнения, поскольку:
- Эта проблема не появляется при первоначальном добавлении библиотеки в приложение.
- Эта проблема появляется только тогда, когда обычно появляется автозаполнение.
- Эта проблема появляется, только если (определенные) комментарии JSDocприсутствуют.
- Проблема не возникает при попытке использовать библиотеку в другом проекте Apps Script.
Я опубликовал пример библиотеки с идентификатором 1KSnHTkbPnzxFuiX-QuDqVYGoLjCLXNaNwePmPZFDE63lVPN3GvKHDr_j
.- В версии 1 исправлена ошибка JSDoc.- Версия 2 точно такая же функция, но без JSDoc.Нет проблем.
/**
* Remove the first element of an array with a given value.
*
* Last updated: 2019-06-29
*
* Example 1. Input { [1,2,3,4,3,2,1] , 3 } returns { [1,2,4,3,2,1] }.
* Example 2. Input { [1,2,3,4,3,2,1] , 5 } returns { [1,2,3,4,3,2,1] }.
* Example 3. Input { [1,2,3,4,3,2,1] , "3" } returns { [1,2,3,4,3,2,1] }.
*
* @author My Name <my@email.address>
* @param {Object[]} arr - Array of strings or numbers (can be mixed).
* @param {(String|Number)} val - Value to remove from the array.
* @return {Object[]} - Array with the selected value removed, if any.
*
*/
function Arrays_removeElementOfValue(arr, val) {
var index = arr.indexOf(val);
if (index > -1) {
arr.splice(index, 1); // splice removes n element(s) in-place from an array; in this case, 1
}
return arr;
}
Я ожидаю, что библиотеку можно использовать в App Maker без необходимости извлекать комментарии JSDoc.
Полученная ошибка не помогает, другиечем
«Общая ошибка клиента» и «Требуется обновление».