首页 > 解决方案 > JS延迟脚本运行

问题描述

我知道我可以使用 setTimeout,但我的软件有一些限制,所以我必须使用一种解决方法。我在网上找到了这个应该作为延迟函数工作的:

function sleep(milliseconds) {
 var start = new Date().getTime();
 for (var i = 0; i < 1e7; i++) {
   if ((new Date().getTime() - start) > milliseconds){
 break;
}
}
}

因为我是 Js 新手,所以我不知道如何调用这个函数。我正在尝试做这样的事情:

sleep(2000) {
...
}

但上述方法不起作用。有人可以告诉我如何运行该功能。谢谢你。

请注意,我的问题不同,因为我不能使用 setTimeout 函数。

标签: javascriptsettimeoutdelaydelayed-execution

解决方案


这个功能看起来不太好。我建议使用 promise 和 .then():

function sleep(time) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve()
    }, time)
  }
}

你可以像这样调用这个函数:

await sleep(2000)

或者

sleep(2000).then(() => {
  // rest of code
})

NONETHELESS,回到你的问题,你会这样调用函数:

sleep(2000)
// rest of code

推荐阅读