Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中强制超时操作?_Javascript_Timeout_Interrupt - Fatal编程技术网

如何在JavaScript中强制超时操作?

如何在JavaScript中强制超时操作?,javascript,timeout,interrupt,Javascript,Timeout,Interrupt,我正在寻找JavaScript代码来强制超时操作 FWIW,在其他编程环境中,我所寻找的是通过在启动操作之前在计时器上设置异步中断信号,并捕获中断信号来实现的(最后一点是关键,因为它决定了中断后控制将转移到哪里)。在伪代码中,它看起来像: alarm = set_alarm(timeout) try operation() catch timeout return end clear(alarm) JavaScript中有类似的东西吗?如果没有,是否有其他方法实现这种强制中断

我正在寻找JavaScript代码来强制超时操作

FWIW,在其他编程环境中,我所寻找的是通过在启动操作之前在计时器上设置异步中断信号,并捕获中断信号来实现的(最后一点是关键,因为它决定了中断后控制将转移到哪里)。在伪代码中,它看起来像:

alarm = set_alarm(timeout)
try
    operation()
catch timeout
    return
end
clear(alarm)
JavaScript中有类似的东西吗?如果没有,是否有其他方法实现这种强制中断



1“强制”的意思是,这些方法不依赖于超时代码的协作。这种合作可以采取内置超时参数的形式,也可以采取全局变量的形式,其设置被调用的代码会定期检查以决定是否继续,等等。

,而无需进入类似于
Webworkers的内容,你唯一能做的就是让你的
操作
函数跟踪它运行了多长时间,如果运行时间过长,就退出

当然,这可能会使事情处于不一致的状态

如果您正试图处理某件事情,但花费的时间太长,可以使用
setTimeout
一次处理一小段事情

如果你真的很幸运,能够只针对最新和最好的浏览器而忽略IE,
生成器函数
可能很神奇——但我们中很少有人这么幸运