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

JavaScript sleep/wait,然后继续

班建义
2023-03-14
问题内容

我有一个JavaScript代码,需要向其中添加睡眠/等待功能。我正在运行的代码已经在一个函数中,例如:

function myFunction(time)
{
    alert('time starts now');
    //code to make the program wait before continuing
    alert('time is up')
}

我听说可能的解决方案可能包括

setTimeout

但我不确定在这种情况下如何使用它。

我不能使用PHP,因为我的服务器不支持PHP,尽管使用jQuery可以。


问题答案:

JS没有睡眠功能,它具有 setTimeout()setInterval() 函数。

如果您可以将暂停后需要运行的代码移到setTimeout()回调中,则可以执行以下操作:

//code before the pause
setTimeout(function(){
    //do what you need here
}, 2000);

这不会停止脚本的执行,但是只要setTimeout()是异步函数,此代码

console.log("HELLO");
setTimeout(function(){
    console.log("THIS IS");
}, 2000);
console.log("DOG");

将在控制台中打印:

HELLO
DOG
THIS IS

(请注意, DOG 是在 之前打印的)

您可以使用以下代码来模拟短时间的睡眠:

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

现在,如果您想睡一秒钟,只需使用:

sleep(1000);

请注意, 此代码将使您的脚本忙_n毫秒_。这不仅会停止页面上Javascript的执行,而且取决于浏览器的实现,可能会使页面完全不响应,也可能使整个浏览器不响应。换句话说,这几乎总是错误的做法。



 类似资料:
  • 问题内容: 在 puppeteer中, 我想等待定义的时间后再转到下一行代码。 我尝试将a 放入评估函数中,但似乎只是被忽略了 此代码不等待,仅 在等待之前 和 之后 编写 __ 你知道怎么做吗? 问题答案: 您可以使用一点承诺功能, 然后,在需要延迟的任何时候调用它。 如果必须使用操纵符,请使用内置的waitFor函数。 如果仍然要使用page.evaluate,请在4​​秒钟后解决。您没有解决

  • 问题内容: 怎么可能 等到动作完成后再继续循环,我不能得到$ this var,因为它具有最后一个值,对不起我的英语,谢谢!!! 问题答案: 选项1:切换到处理程序中数组中的下一个元素。 选项2:同步发出Ajax请求: 全球: 或直接在请求中: });

  • 我目前有一个Web钩子,它调用AWS API网关- 我继续从Lambda(节点v6.10)上做了这个早期回复,但它似乎没有改善响应能力。API网关是否在等待Lambda完成执行,尽管已经收到了回调的响应? 另一个想法是发布来自Lambda的SNS通知,并让第二个Lambda监听并继续处理,但如果有更简单的方法,则宁愿避免这种复杂性。

  • 问题内容: 我的document.ready()中有一些ajax调用 喜欢 : 我如何强制它等待,直到我们从ajax请求获得所有回叫之前不继续? 问题答案: 我根本不喜欢任何答案,最好的方法(自Jquery 1.5+起)是使用Deferred对象,这些是操纵异步调用的对象,可以解决: 这样,myFunc会在执行2个ajax调用之后执行,如果其中一个出错,则执行myFailure。 您可以在jque

  • 描述 (Description) 此函数等待子进程终止,返回已故进程的进程ID。 该流程的退出状态包含在$?中。 语法 (Syntax) 以下是此函数的简单语法 - wait 返回值 (Return Value) 如果没有子进程,则此函数返回-1,否则返回已故进程的进程ID<!-- 例子 (Example) Following is the example code showing its ba

  • wait(等待子进程中断或结束) 相关函数 waitpid,fork 表头文件 #include<sys/types.h> #include<sys/wait.h> 定义函数 pid_t wait (int * status); 函数说明 wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束