0
我想确定触发器是否成功创建,但即使是不成功的触发器也会生成唯一的ID并且似乎已创建。确定触发器是否成功创建使用GAS
//this will show 0
var triggers = ScriptApp.getProjectTriggers();
showAlert(triggers.length); //define showAlert
var dt = new Date(2015,03,03,20,10) // create past date or feb 31
//Month index starts from 0 i.e. Jan =0,Feb=1... So on
var ret = ScriptApp.newTrigger('myFunction').timeBased().at(dt).create()
showAlert(ret.getUniqueId()); //will display ID for sure
//this will show 1
var triggers = ScriptApp.getProjectTriggers();
showAlert(triggers.length); //define showAlert
但实际上触发不会创建
'(at)''只能使用一次。过去不能创建触发器。虽然它有一个ID,但触发器已经完成。所以触发器已经被删除。如果将''dt''修改为''var dt = new Date(2018,03,03,20,10)'',您可以在当前触发器列表中看到触发器。 – Tanaike
哦,不,我知道上述事实。我的问题是,我将如何确定触发器是否有效或不是程序上。它不会抛出错误,它只会删除触发器。 –
我很抱歉误会。在您的示例脚本中,可以检索过去一段时间创建的触发器的信息。但实际上这种触发器不起作用。因此,在创建过去触发器的脚本完成后,使用''getProjectTriggers()''时,长度为零。在这个时候,我认为时间可能是必要的,以消除过去的触发。所以我把“Utilities.sleep(1000)”放在脚本的''var ret =''和''var triggers =''之间。放置之后,过去时间的触发信息消失了。这是否会导致解决方案? – Tanaike