2017-06-15 2 views
0

Gibt es eine Möglichkeit, einen Funktionsaufruf in Google Apps Scripts zu verzögern? Ich teste gerade für kleinere Zeitrahmen, aber ich möchte schließlich eine Wartezeit von 72 Stunden zwischen der Verarbeitung von Daten und dem Aufruf von moveRows haben.Google Apps Scripts ReferenceError: "setTimeout" ist nicht definiert

Ich habe versucht, dies zu erreichen, indem er diesen Aufruf Javascript-Funktion machen:

setTimeout(function() { moveRows(arrayOfRows); }, 3000); 

Ich habe auch versucht es mit einem Auslöser, aber meine Funktion nie aufgerufen habe zu tun.

ScriptApp.newTrigger('moveRows(arrayofRows)') 
.timeBased() 
.everyMinutes(1) 
.create() 

Was mache ich falsch?

+0

setTimeout ist nicht Teil von JavaScript, ist Teil der clientseitigen Browserprogrammierung. Verwenden Sie Auslöser. Sie können Parameter nicht an Trigger übergeben, sondern andere Methoden wie Skripteigenschaften verwenden. –

Antwort

1

setTimeout() gehört zu dem Objekt 'window', das in GAS nicht vorhanden ist. Denken Sie daran, dass der Code auf Google-Servern und nicht in Ihrem Browser kompiliert wird, sodass Sie in dieser Umgebung keinen Zugriff auf DOM haben. Ebenso können Sie nicht auf Dokumente oder andere DOM-Objekte verweisen. Der einzige Ort, an dem es möglich ist, ist clientseitiges HTML, das HtmlService erstellt und zum Rendern an Ihren Browser sendet.

Sie können den Funktionsnamen nur als Parameter an die newTrigger() -Methode übergeben. Sie übergeben den Parameter, weshalb er nicht funktioniert.

Verwandte Themen