web-dev-qa-db-fra.com

Comment utiliser la fonction Utilities.sleep ()

Quelle est l'utilisation exacte de la fonction Utilities.sleep()? Doit-on l'utiliser entre des appels de fonction ou des appels d'API?

J'utilise la fonction Utilities.sleep(1000) entre les appels de fonction, est-ce vrai? Cela ralentira-t-il le temps d'exécution?

24
balajiboss

Utilities.sleep (millisecondes) crée une "pause" dans l'exécution du programme, ce qui signifie qu'il ne fait rien pendant le nombre de millisecondes que vous demandez. Cela ralentit sûrement tout votre processus et vous ne devriez pas l'utiliser entre les appels de fonction. Il existe cependant quelques exceptions, au moins celle que je connais: dans SpreadsheetApp lorsque vous souhaitez supprimer un certain nombre de feuilles, vous pouvez ajouter quelques centaines de millisecondes entre chaque suppression pour permettre l'exécution normale du script (mais ceci est une solution de contournement pour un problème connu avec cette méthode spécifique). J'ai dû l'utiliser également lors de la création de nombreuses feuilles dans une feuille de calcul pour éviter que le navigateur ait besoin d'être "actualisé" après l'exécution.

Voici un exemple :

function delsheets(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var numbofsheet=ss.getNumSheets();// check how many sheets in the spreadsheet
  for (pa=numbofsheet-1;pa>0;--pa){ 
    ss.setActiveSheet(ss.getSheets()[pa]);
    var newSheet = ss.deleteActiveSheet(); // delete sheets begining with the last one
    Utilities.sleep(200);// pause in the loop for 200 milliseconds
  }
  ss.setActiveSheet(ss.getSheets()[0]);// return to first sheet as active sheet (useful in 'list' function)
}
44
Serge insas