当前位置: 首页 > 面试题库 >

sleep()的JavaScript版本是什么?

洪德寿
2023-03-14
问题内容

是否有sleep比下面的pausecomp函数(从此处获取)更好的方法来设计JavaScript

function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);
}

这不是JavaScript中Sleep的重复-动作之间的延迟 ; 我希望在函数中间真正入睡,而不是在执行一段代码之前没有延迟。


问题答案:

2017年— 2019年更新

自2009年提出这个问题以来,JavaScript取得了长足的发展。现在,所有其他答案都已过时或过于复杂。这是当前的最佳做法:

function sleep(ms) {

  return new Promise(resolve => setTimeout(resolve, ms));

}



async function demo() {

  console.log('Taking a break...');

  await sleep(2000);

  console.log('Two seconds later, showing sleep in a loop...');



  // Sleep in loop

  for (let i = 0; i < 5; i++) {

    if (i === 3)

      await sleep(2000);

    console.log(i);

  }

}



demo();

就是这个。await sleep(<duration>)

还是单线:

await new Promise(r => setTimeout(r, 2000));

注意,

  1. await只能在以async关键字为前缀的函数中执行,或者在某些环境中(例如Chrome DevTools控制台或Runkit)在脚本的顶层执行。
  2. await仅暂停当前async功能

两个新的JavaScript功能帮助编写了此“睡眠”功能:

  • Promises,是ES2015(又名ES6)的本机功能。我们还在睡眠功能的定义中使用了箭头功能。
  • 该async/await功能使代码可以明确地等待承诺的达成(解决或拒绝)。

兼容性

  • 诺言在Node v0.12 +中受支持,并且在浏览器(IE除外)中得到广泛支持
  • async/ await降落在V8中,自Chrome 55(于2016年12月发布) 以来已默认启用
  • 它于2016年10月降落在Node 7上
  • 并于2016年11月登陆Firefox Nightly
    如果你正在使用节点年纪比7(已经达成了一些奇怪的原因生命的尽头),或瞄准旧的浏览器,async/ await仍然可以通过使用巴别塔(一种工具,将transpile的JavaScript +新功能集成到普通的旧的JavaScript) ,带有transform-async-to-generator插件。


 类似资料:
  • 问题内容: 我开始使用Node.js,并且很难确定节点支持哪种JavaScript版本,这使得很难确定可以使用哪些功能。这就是我所知道的。 节点使用V8 V8实现了ECMA-262,第3版中指定的ECMAScript ECMA-262,第三版是JavaScript 1.5 鉴于此,我假设我可以在节点中使用JavaScript 1.5兼容代码。但是,事实证明我可以使用,以及其他结构,即使根据MDC,

  • 你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称之为“版本”)时,版本控制系统可以显示出当前版本与上一个版本之间的所有改动的细节。 版本控制与项目的种类,使用的技术和基础框架并无关系: 无论是设计开发一个HTML网站或者是一个苹果应用,它的工作原理都是一样的。 你可以选择任何你喜欢的工具来工作,它并不关心你

  • 问题内容: 我已经使用谷歌搜索了很久了,但是没有结果。该PyInstaller手册说: 听起来很棒。我想将版本信息放入可执行文件中。问题是我不知道“版本文件”的外观,也找不到我可以使用的单个示例。我认为将版本文件的示例作为对此问题的可接受答案。 我尝试过的 该手册还说: 仅Windows NT家族 版本 。版本=’myversion.txt’。使用GrabVersion.py从可执行文件中窃取版本

  • 问题内容: 刚开始使用C ++并尝试转换我最近编写的简单Java程序。 与C ++中的Java ArrayList等效的首选含义是什么? 问题答案: 使用标准库中的类。

  • 本文向大家介绍JavaScript Sleep()函数?,包括了JavaScript Sleep()函数?的使用技巧和注意事项,需要的朋友参考一下 睡觉() 借助Sleep(),我们可以使函数在固定的时间内暂停执行。在诸如C和Php的 编程语言中,我们将其称为sleep(sec)。Java有 Thread.sleep()方法,Python已经time.sleep()和GO 具有time.Sleep

  • 问题内容: __MySql中的 LIKE 运算符用于查找包含我们的查询文本的行,例如: 将会返回,等等。 如果我需要相反-找到那些行 所载 在我们的查询文本?例如,我给它并希望它从该字符串中可以找到的表中查找所有名称。 怎么做? 问题答案: 这是您可以实现所描述内容的方法: