【发布时间】:2013-09-12 18:48:15
【问题描述】:
我有一个谷歌表单,该表单最多可询问 40 个问题,并在“提交表单”事件时触发脚本。
大多数情况下,我通过此代码成功地将当前提交的响应引用到 var formResponse,该代码获取所有响应的数组,然后通过 .length-1 获取最新响应:
var formResponses = form.getResponses();
var i = formResponses.length-1;
var formResponse = formResponses[i];
当表单收集超过 25 个响应时,似乎会出现处理延迟,并且脚本将运行,但响应尚未以某种方式添加到 .getResponeses() 数组中。结果是脚本再次运行以获取较旧的响应。当我去查看表单和包含结果的电子表格时,它已按预期更新,但事件已经因错误的响应而触发......所以我想知道我是否正确引用或者是否存在问题在谷歌表单方面。当我从表单中删除所有回复时,该问题暂时得到缓解,但在回复数量达到大约 25 条后再次出现。
感谢您的支持!
【问题讨论】:
-
所有文档都表明上述代码是有效的。一旦表单收集了 25 个以上的响应,就会出现问题,因此我在脚本中引入了延迟,以允许谷歌在我引用它之前完成将响应发布到数组。我正在使用 `Utilities.sleep(30000);` 等待 30 秒,然后再执行脚本的其余部分。
标签: google-apps-script google-forms