2015-10-17 110 views
1

如何通過觸發器名稱而不是triggerarray ID以編程方式刪除Google Apps Script基於時間的觸發器?通過觸發器名稱以編程方式刪除Google Apps腳本基於時間的觸發器?

我正在創建一個觸發器,稍後我想按名稱刪除觸發器。我試過這個:

ScriptApp.deleteTrigger("myfunction"); 

但它不起作用。我不想使用這種方法:

var triggers = ScriptApp.getProjectTriggers(); 
    ScriptApp.deleteTrigger(triggers[0]); 

由於我在同一時間有多個觸發器,並可能刪除錯誤! 那麼如何通過它的名字而不是觸發器數組ID來刪除觸發器?

function demo(){ 

    ScriptApp.newTrigger("myfunction") 
     .timeBased() 
     .everyMinutes(1) 
     .create(); 
    } 

    function myfunction(){ 
    // do some stuff here then stop the trigger by name 
    ScriptApp.deleteTrigger("myfunction"); 
    } 

回答

5

如果您遍歷所有觸發器你可以訪問處理函數的名稱:如shown in the docs

var triggers = ScriptApp.getProjectTriggers(); 
for (var i in triggers) { 
    var funcName = triggers[i].getHandlerFunction() 
} 

...。

+1

是否有可能通過ID刪除觸發器? –

1

@code-guy

// Deletes all triggers in the current project. 
var triggers = ScriptApp.getProjectTriggers(); 
for (var i = 0; i < triggers.length; i++) { 
    ScriptApp.deleteTrigger(triggers[i]); 
} 

From Docs

相關問題