如何在Google Apps脚本中异步运行方法?

时间:2016-01-26 23:05:14

标签: javascript events asynchronous google-apps-script

我有一个功能,当通过表单提交一些数据时,客户端会调用该功能。这会触发一个操作,将电子邮件发送给希望接收通知的个人。问题是这必须与表单提交同步完成,因此提交表单的用户必须等待电子邮件发送,然后才能从Apps脚本收到返回数据,说明提交成功。

这有时需要几秒钟。有没有办法在应用程序脚本中异步运行一个函数(所以服务器可以在发送电子邮件时向客户端返回一条消息)?

或者甚至更好,创建一个我可以听到类似于.NET事件的事件吗?

1 个答案:

答案 0 :(得分:0)

你的头衔有误导性。您不希望它运行异步,默认情况下,当您从客户端进行google.script.run.somefunction()等调用时,它将默认运行。

您需要做的是,在应用脚本中创建另一个功能(例如EmailSentSuccessfully()),根据电子邮件是否已完成发送报告真/假。它可以读取一个'属性' (本质上是一个静态全局变量),由实际发送电子邮件的函数更新。你从客户端调用EmailSentSuccessfully(),比如说每2秒,直到它返回一个真值。直到那个时间,什么也不做,(或禁用表单元素,以便用户不能采取任何其他行动)。