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