Запись комментариев JSDoc (-подобных) в библиотеке скриптов приложений, импортированной в App Maker, приводит к невозможности ее использования? - PullRequest
2 голосов
/ 02 июля 2019

Я пытаюсь импортировать библиотеку скриптов 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 для предоставления предложений автозаполнения, поскольку:

  1. Эта проблема не появляется при первоначальном добавлении библиотеки в приложение.
  2. Эта проблема появляется только тогда, когда обычно появляется автозаполнение.
  3. Эта проблема появляется, только если (определенные) комментарии JSDocприсутствуют.
  4. Проблема не возникает при попытке использовать библиотеку в другом проекте 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.

Полученная ошибка не помогает, другиечем

«Общая ошибка клиента» и «Требуется обновление».

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