我有一个函数,当通过表单提交某些数据时,客户端会调用该函数。这会触发一个操作,向希望接收通知的个人发送电子邮件。问题是,这必须与表单提交同步完成,因此提交表单的用户必须等待电子邮件发送,然后才能收到 Apps 脚本的返回数据,表明提交成功。
这有时可能需要几秒钟。有没有办法在应用程序脚本中异步运行函数(以便服务器可以在发送电子邮件时向客户端返回消息)?
或者更好的是,创建一个我可以监听的事件,类似于 .NET 中的事件?
最佳答案
您的标题具有误导性。您不希望它异步运行,当您从客户端进行 google.script.run.somefunction() 之类的调用时,默认情况下它会异步运行。
您需要做的是,在应用程序脚本中创建另一个函数(例如 EmailSentSuccessively()),该函数根据电子邮件是否已完成发送来报告 true/false。它可以读取“属性”(本质上是静态全局变量),该变量由实际发送电子邮件的函数更新。您从客户端调用 EmailSentSuccessively()(例如每 2 秒一次),直到它返回一个真值。在那之前,不要执行任何操作(或禁用表单元素,以便用户无法执行任何其他操作)。
关于javascript - 如何在 Google Apps 脚本中异步运行方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025771/