首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Utilities.sleep()函数

如何使用Utilities.sleep()函数
EN

Stack Overflow用户
提问于 2012-06-22 00:00:12
回答 4查看 121.7K关注 0票数 41

Utilities.sleep()函数的确切用法是什么?我们应该在函数调用之间还是在API调用之间使用它?

我在函数调用之间使用Utilities.sleep(1000),对吗?它会减慢执行时间吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-22 00:11:23

Utilities.sleep(毫秒)在程序执行中创建“暂停”,这意味着它在您要求的毫秒数内不做任何事情。它肯定会减慢你的整个过程,你不应该在函数调用之间使用它。但也有一些例外,至少我知道有一个例外:在SpreadsheetApp中,当你想要删除一些工作表时,你可以在每次删除之间添加几百毫秒的时间,以允许正常的脚本执行(但这是针对此特定方法的已知问题的变通方法)。当我在一个电子表格中创建许多工作表时,我也必须使用它,以避免浏览器在执行后需要“刷新”。

下面是一个示例:

代码语言:javascript
复制
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)
}
票数 64
EN

Stack Overflow用户

发布于 2020-11-17 19:17:53

Serge是对的-我的解决方法:

代码语言:javascript
复制
function mySleep (sec)
{
  SpreadsheetApp.flush();
  Utilities.sleep(sec*1000);
  SpreadsheetApp.flush();
}
票数 8
EN

Stack Overflow用户

发布于 2020-11-06 00:38:48

一些谷歌服务不太喜欢被使用。最近,我的帐户因为脚本而被锁定,该脚本每秒向同一用户发送两封电子邮件。谷歌将其视为垃圾邮件。因此,在这里使用睡眠也是为了防止这种情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11142109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档