微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的 OnFormSubmit 触发器需要在加载项的 OnFormSubmit 触发器触发之前完成

如何解决我的 OnFormSubmit 触发器需要在加载项的 OnFormSubmit 触发器触发之前完成

我将 Form Publisher 插件与 Google Forms 一起使用,以便将每个 Forms 响应转换为 Google Doc。这是一个很棒的附加组件。

我已经编写了自己的 OnFormSubmit 触发器(头部部署;应用脚本库的一部分),用于重命名表单用户可能已作为表单响应的一部分上传文件。 (文件名只能从 Drive.App 文件对象中获得,不能从表单响应本身中获得。)

根据 Form Publisher 放入它生成的 Google 文档的上传文件名,我可以看出有时该文档是在我的 OnFormSubmit 重命名文件之前生成的,有时是在我的 OnFormSubmit 触发之后生成的。

所以我的问题是:鉴于我对 Form Publisher 的工作原理一无所知(尽管我认为 OnFormSubmit 将是它的核心),有什么方法可以确保我的 OnFormSubmit 会触发并且在 Form Publisher 开始生成 Google 文档之前完成?

解决方法

谢谢,安塞达诺!我一直在进行测试和研究,我所看到的一切都表明您的评论是正确的。

恐怕如果您有两个触发器从同一个事件中触发,则无法确保一个触发器在另一个之前启动/完成。它们异步发送到服务器,因此订单永远不会可靠。您通常处理此问题的方法是让它们成为同一个触发器的一部分,但由于您将自己的脚本与封闭源代码的附加脚本混合并匹配,这是不可能的。如果您希望您的脚本在那之后触发,您可以使用延迟,但要在此之前触发它,您可能最好编写自己的脚本。

根据记录,似乎有一线希望here。我读到那篇文章的答案是说附加组件可以使用 @customfunction 来公开我的 OnFormSubmit 触发器可以调用的函数;例如,该自定义函数可以让附加组件休眠一段时间(或者甚至更好:休眠直到我调用第二个自定义函数来表示我已完成),以便我的 OnFormSubmit 触发器先运行。

但除此之外,我什么也没想到。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。