Получение последней формы ответа иногда получает вместо нее предыдущую.

Мне интересно, связано ли это с особенно загруженным временем для скрипта Google Apps, потому что кажется, что это связано с (случайной) задержкой обновления длины массива formResponse []. Я использую следующий код, чтобы получить последний ответ, вызванный отправкой формы:

var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var formResponse = formResponses[formResponses.length-1]; //latest response only
Logger.log('begin length: ' + formResponses.length);

Затем остальная часть моего сценария взаимодействует с ответами в массиве formResponse []. Иногда я замечаю, что он получил ответдо последний ответ. Я могу проверить это, потому что электронная таблица с ответами формы показывает фактический последний ответ. Мой сценарий выполняется 5-15 секунд, поэтому у меня есть следующие строки в конце моего кода, чтобы еще раз проверить длину массива:

var form2 = FormApp.getActiveForm();
var formResponses2 = form2.getResponses();
Logger.log('end length: ' + formResponses2.length);

и в журнале я замечу, что второй на единицу больше первого (а второй - правильное значение). На самом деле я не нашел много примеров того, когда это происходит, но, кажется, это происходит чаще между 7-9 утра по тихоокеанскому времени. Сейчас я добавилUtilities.sleep(5000) в качестве первой строки в функции, чтобы дать время для обновления формы до того, как я получу ответы, и до сих пор у меня не было n-2 ответов, что заставляет меня думать, что есть некоторая задержка, вызывающая запись формы последний ответ после срабатывания «при отправке формы».

Кто-нибудь еще сталкивался с чем-либо подобным?

Ответы на вопрос(1)

Ваш ответ на вопрос