'on form submit'脚本的运行速度能否比表单写入电子表格的速度快?



我有一个将数据发送到电子表格的表单。我在表单上附加了一个脚本,用于在表单提交时创建日历条目、确认文档等。

有 3 次(在大约 100 个表单提交和一堆手动脚本运行中)脚本已经运行,但不是从新提交的表单中提取数据,而是从之前提交的表单中提取数据。重新检查代码后,我唯一能弄清楚的是"从电子表格的最后一行读取数据"命令在电子表格"收到"新表单数据之前就已执行。

这可能吗?(我本来以为表单提交脚本在表单完全提交之前不会启动)

有没有办法避免这种打嗝?(我将在脚本上放置 1 秒的睡眠时间,以便为电子表格提供一些额外的时间以赶上以防万一)

谢谢

这当然可能发生,从工作表中读取和写入需要时间,并且这两个操作可以以不同的速度发生。

不要使用 "getLastRow()" 来拉取提交的数据,而是使用触发器传递给函数的事件数据:

function onFormSubmit(e){     //e is an event object passed to the function when it is triggered.
    Logger.log(e.response);   //e.response  is a FormResponse object containing the data submitted by the user.
    Logger.log(e.response.getItemResponses()); //getItemResponses() returns all the responses in an Array, similar to what is returned by getLastRow()
}

看:https://developers.google.com/apps-script/guides/triggers/events#google_forms_eventshttps://developers.google.com/apps-script/reference/forms/form-response

最新更新