javascript - 在javascript中固定时间后停止执行功能

标签 javascript jquery web-worker

我需要让函数运行固定的秒数,然后终止。我可以使用 jQuery 或 web workers,但我尝试这样做直接失败了。

感谢帮助,现在可以使用了:

startT = new Date().getTime();
i = 1;

while(true){
    now = new Date().getTime();
    if( (now - startT) > 100) {
        break;
    } 

    i++;
}

alert(i);

最佳答案

您建议的方法不起作用,因为 Javascript(大部分)是单线程的 - 循环以无限循环开始,因此永远不会调用 setTimeout 处理程序,所以 keepGoing 永远不会被设置,所以循环无法完成。

最简单的方法是确定函数完成的绝对时间,并且每隔一段时间(即不是在每次迭代时)检查当前时间是否已经超过该时间点。

选择一些迭代次数,使您可以在耗时的测试效率与您准备让函数拥有的“超时”量之间做出合理的折衷。

关于javascript - 在javascript中固定时间后停止执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228004/

相关文章:

javascript - 获取最近 Div 的 ID 不工作两次

javascript - 如何围绕 Web Workers API 编写 Promise 包装器?

javascript - 为什么要复制一个名为 "slice"的数组?

javascript - Javascript中如何使用indexOf判断某组字符是否存在

c# - 使用带有返回值的 C# CodeBehind 调用 jQuery 函数

javascript - 使用数据属性对元素进行升序和降序排序

javascript - 我可以在浏览器 ui 线程和 web 工作线程中安全地使用 html5 中的哪些本地存储

javascript - 共享 worker 确实共享变量

javascript - 由于 jQuery/UI 版本不同,jQuery slider 不是 "sliding"

javascript - Jest 中未定义 AnimationEvent