首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google应用程序脚本功能不能从自动触发器调用另一个函数

Google应用程序脚本功能不能从自动触发器调用另一个函数
EN

Stack Overflow用户
提问于 2020-10-27 04:48:03
回答 1查看 74关注 0票数 0

我有一个从Amazon提取数据的API函数,我需要分别拥有'fetch‘& 'get’报告函数来实现对

  1. 请求从Amazon获取报告,以及
  2. 从Amazon获取报告,请求操作大约需要2分钟才能完成抓取请求并允许获取报告,因此在脚本中,我在2分钟后设置了script.newtrigger
代码语言:javascript
复制
function fetchReportMarketListTrig() {
  fetchReportMarketList(true);
  ScriptApp.newTrigger("getReportsForAccountMarketListTrig")
  .timeBased()
  .after(2* 60 * 1000)
  .create();
  Logger.log("Report Request Created");
}

当我从menuitems手动触发该函数时,getReportsForAccountMarketListTrig将在2分钟后被调用。但是,如果设置了自动触发器,fetchReportMarketListTrig就不能调用getReportsForAccountMarketListTrig。我们需要寻找为什么工作表的行为不同于手动触发器和自动触发器的答案。非常感谢!

从菜单项目手动触发

在google工作表时间驱动触发器中设置自动触发器

自动触发器和手动触发器执行结果

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 09:53:45

答案:

您有两个名称相同的函数!在为该函数创建触发器时,这会产生未定义的行为。

更多资料:

在为触发器提供的屏幕截图中,将显示以下警告:

同一个项目中的函数必须始终具有唯一的名称!

想象一下以下代码:

代码语言:javascript
复制
function doSomeMath() {
  var x = 1 + 2;
  console.log(x);
}

function doSomeMath() {
  var x = 100 + 200;
  console.log(x);
}

然后你让你的触发器运行函数doSomeMath() -它怎么知道你指的是哪一个?

修正:

这里的相似之处在于,代码罐装fetchReportMarketListTrig中的另一个函数是在基于时间的触发器上运行的,而不是您想要运行的触发器。

要解决这个问题,请搜索脚本文件中名为fetchReportMarketListTrig的函数,并将它们重命名,以便它们是唯一的。然后,您可以在您想要的函数上设置触发器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64548461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档