web-dev-qa-db-ja.com

Utilities.sleep()関数の使用方法

Utilities.sleep()関数の正確な使用法は何ですか?関数呼び出しまたはAPI呼び出しの間で使用する必要がありますか?

Utilities.sleep(1000)中間関数呼び出しを使用していますが、正しいですか?実行時間が遅くなりますか?

24
balajiboss

Utilities.sleep(milliseconds)は、プログラムの実行中に「一時停止」を作成します。つまり、要求したミリ秒数の間、何もしません。それは確かにあなたのプロセス全体を遅くします、そしてあなたは関数呼び出しの間でそれを使うべきではありません。ただし、少なくとも私が知っているいくつかの例外があります:SpreadsheetAppでは、複数のシートを削除するときに、各削除の間に数百ミリ秒を追加して、通常のスクリプトの実行を許可できます(ただし、これは回避策です)この特定の方法に関する既知の問題)。スプレッドシートで多数のシートを作成するときにも、実行後にブラウザーを「更新」する必要がないようにするために使用する必要がありました。

以下に例を示します。

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