我在开发Gmail插件时注意到一件奇怪的事情。
每次从卡片(例如从TextButton)执行一个动作时,项目中所有脚本的代码都会被执行。
例如,如果我在项目中添加一个只包含这一行的脚本:
Logger.log("TEST LOG")
这一行被执行…我可以看到TEST log_quot;在执行日志中。
这与我所期望的相反-仅执行该操作的具有setFunctionName()的函数集。
这是预期的行为吗?可以避免吗?
它只发生在开发模式还是生产模式(例如在市场上发布的项目)?
这是使用Apps Script时的预期行为。
当运行任何函数时,函数外部所有其他文件中的所有指令/变量也会被执行。这与脚本类型无关,因为这是Apps script处理执行的方式。
管理这种情况的一种方法是将所有代码组织在函数块中。