2012-06-21 17 views
12

¿Cuál es el uso exacto de la función Utilities.sleep()? ¿Deberíamos usarlo entre llamadas de función o llamadas API?Cómo utilizar la función Utilities.sleep()

Uso las llamadas de función intermedias Utilities.sleep(1000), ¿verdad? ¿Disminuirá el tiempo de ejecución?

Respuesta

24

Utilities.sleep (milisegundos) crea una 'pausa' en la ejecución del programa, lo que significa que no hace nada durante el número de milisegundos que pida. Seguramente ralentiza todo tu proceso y no deberías usarlo entre llamadas a funciones. Sin embargo, hay algunas excepciones, al menos la que yo sé: en SpreadsheetApp cuando quiere eliminar un número de hojas, puede agregar unos cientos de milisegundos entre cada eliminación para permitir la ejecución normal de scripts (pero esto es una solución) para un problema conocido con este método específico). Tuve que usarlo también cuando creé muchas hojas en una hoja de cálculo para evitar que el navegador se "actualizara" después de la ejecución.

Aquí se muestra un ejemplo:

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) 
} 
Cuestiones relacionadas