【发布时间】:2015-06-01 14:48:44
【问题描述】:
我开始使用 Google App Scripts,并且我对 JavaScript 知之甚少,我尝试了以下操作。我收到一个错误,但脚本似乎确实有效。
为什么会报错?当我按下小播放按钮时,它似乎特别希望运行一个功能。像我在下面所做的那样构建一个谷歌应用程序脚本文档会是不好的做法吗?
(function (id) {
var sheet = SpreadsheetApp.openById(id).getSheets()[0];
var data = sheet.getDataRange().getValues();
Logger.log(data);
sheet.appendRow(['this','is','another', 'bigger','test','of','stuff']);
})('1BXDicksYS19jre0tZKHEjqqyvdzbhbtFfSm053q2sZ0')
=== 编辑 ===
Google Apps 脚本不应该从 IIFE 运行,因为它想显式地触发一个函数。所以是的。我认为,根据我一年后仍然有限的经验,这是编写 Google Apps 脚本的糟糕方式。
【问题讨论】:
-
在 VIEW 菜单下,选择“Execution Transcript”。查看列表的底部。有错误信息吗?如果是这样,它是什么,是什么线?
-
是的,有一个错误:15-06-01 16:55:53:632 SAST] 执行失败:找不到脚本函数:createReport [0.0 秒总运行时间]
-
但是脚本中没有命名函数。我不知道为什么它一直试图运行一个(起初我有一个名为 createReport 的函数。但是,它完全按照它应该的方式工作,所以它几乎是一个错误?
-
您使用的 JavaScript 语法被许多人称为“自调用”函数。在某些条件下,该函数无需调用即可运行。它也是一个匿名函数。 (它没有名称)因此函数名称字段中没有列出名称。如果单击 Run 按钮,该函数可能会运行,因为它位于全局范围内。不知道你想怎么触发这个功能?
-
是的,就像桑迪说的那样。使用
function myFunction() { var id='xxxxx'; etc; }中的“常规”函数语法,然后它将出现在函数列表中并可以在触发器中使用
标签: javascript google-apps-script iife