2012-06-12 34 views
2

我想有一个函数,我运行在一个定时器调用另一个函数,需要参数,我的代码是一个非常微小的修改版本this tutorial我已经删除了短信呼叫和下面的代码工作启动一个函数与参数

function testFunction() { 
    var label = GmailApp.getUserLabelByName('GApps/Test'); 
    var emails = label.getThreads(); 
    var now = new Date().getTime(); 
    for(i in emails){ 
     CalendarApp.createEvent('You got an Email!', new Date(now+60000), new Date(now+60000)); 
    } 
} 

我已经建立了在Gmail的过滤器应用于子标签测试(从GAPPS)标签家庭的任何电子邮件我从某一个电子邮件地址得到的,当我从这个地址收到一封电子邮件,并且它得到标签测试上面的代码添加了一个条目到我的谷歌日历,事件名称你和电子邮件!这两个开始和结束从当前时间的一分钟

function gmail2cal(labLoc, event) { 
    var label = GmailApp.getUserLabelByName(labLoc); 
    var emails = label.getThreads(); 
    var now = new Date().getTime(); 
    for(i in emails){ 
     CalendarApp.createEvent(event, new Date(now+60000), new Date(now+60000)); 
    } 
} 

现在这里是相同的代码,具有用于变量取代的琴弦,提供这种功能被称为具有两个参数,与作为前一个块的值相同代码应该相同功能

function launcher(){ 
    gmail2cal('GApps/Test','You got an Email!'); 
} 

但是,当我在谷歌使用运行功能按钮Google Apps脚本编辑器,功能gmail2cal不工作,我不明白为什么

+0

我很好奇,所以我在这里测试它,它很好地工作。你能解释一下你的问题吗? –

+0

我当然假设你尝试了'发射器'的功能当然,因为gmail2cal不能单独使用(正如爱德华多在他的回答中所述) –

回答

2

从RUN命令Google Apps脚本编辑器可以不能将任何参数传递给你的函数。因此,如果您执行功能gmail2cal,则会调用该功能而不带任何参数,这会导致labLocevent评估为undefined。可能GmailApp.getUserLabelByName(undefined);什么也没有返回,因此你的函数不会做任何事情。

在这种情况下,您可能想要从运行菜单执行功能launcher,该功能将使用它需要的2个参数执行gmail2cal

+0

感谢的人,这样做的工作 – hamsolo474