2017-10-05 6 views
-1

Ich muss eine Javascript-Funktion von meinem HTML zweimal aufrufen, aber ich brauche eine Verzögerung zwischen den beiden. Wenn ich den unten stehenden Code ausführe, werden beide Dateien fast sofort hochgeladen, obwohl es eine volle Minute Verzögerung geben sollte. Irgendeine Idee, was ich hier vermisse?Funktion aufgerufen mit setTimeout läuft immer noch sofort

 sendFileToDrive(allFiles1[0]); 
     setTimeout(sendFileToDrive(allFiles2[0]),60000); 

Antwort

1

Sie müssen eine Funktion übergeben, nicht eine ausführen.

setTimeout(() => sendFileToDrive(allFiles2[0]), 60000); 

Nun ist die Funktion, die Sie setTimeout weitergegeben werden nach einer Minute ausgeführt werden, und den Anruf zu setFileToDrive auszuführen.


Das obige verwendet eine Pfeilfunktion. Hier ist einer mit traditioneller Syntax.

setTimeout(function() { sendFileToDrive(allFiles2[0]) }, 60000); 

Sie auch .bind() nutzen könnten.

setTimeout(sendFileToDrive.bind(this, allFiles2[0]), 60000); 

Dies setzt voraus, dass der 0 Index allFiles2 bereits die Daten enthält, die Sie weitergeben müssen.

+0

Super, vielen Dank! – Thaaron

+0

Gern geschehen. – llama

Verwandte Themen