Uzyskanie najnowszej odpowiedzi Form czasami powoduje uzyskanie odpowiedzi przed nią

Zastanawiam się, czy ma to związek ze szczególnie intensywnym czasem korzystania z Google Apps Script, ponieważ wydaje się, że ma to związek z (sporadycznym) opóźnieniem w aktualizowaniu długości tablicy formResponse []. Używam następującego kodu, aby uzyskać najnowszą odpowiedź wywołaną przez formularz:

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

Potem reszta mojego skryptu wchodzi w interakcję z odpowiedziami w tablicy formResponse []. Od czasu do czasu zauważę, że otrzymała odpowiedźprzed najnowsza odpowiedź. Mogę to zweryfikować, ponieważ arkusz kalkulacyjny z odpowiedziami na formularz pokazuje aktualną ostatnią odpowiedź. Wykonanie mojego skryptu zajmuje 5-15 sekund, więc na końcu mojego kodu mam następujące wiersze, aby jeszcze raz sprawdzić długość tablicy:

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

w dzienniku zauważę, że drugi jest o jeden większy od pierwszego (a drugi jest poprawną wartością). Naprawdę nie znalazłem zbyt wielu wzorów, kiedy to się dzieje, ale wydaje się, że zdarza się to częściej między godzinami 7-9 rano PST. Na razie dodałemUtilities.sleep(5000) jako pierwsza linia w funkcji pozwalająca na aktualizację formularza, zanim otrzymam odpowiedzi, i jak dotąd nie miałem żadnych odpowiedzi n-2, co sprawia, że ​​myślę, że istnieje jakaś zwłoka powodująca zapisanie formularza ostatnia odpowiedź po wyzwoleniu pożaru „na formularzu”.

Czy ktoś inny napotkał coś podobnego?

questionAnswers(1)

yourAnswerToTheQuestion