如何在JavaScript中强制超时操作?
我正在寻找JavaScript代码来强制超时操作 FWIW,在其他编程环境中,我所寻找的是通过在启动操作之前在计时器上设置异步中断信号,并捕获中断信号来实现的(最后一点是关键,因为它决定了中断后控制将转移到哪里)。在伪代码中,它看起来像:如何在JavaScript中强制超时操作?,javascript,timeout,interrupt,Javascript,Timeout,Interrupt,我正在寻找JavaScript代码来强制超时操作 FWIW,在其他编程环境中,我所寻找的是通过在启动操作之前在计时器上设置异步中断信号,并捕获中断信号来实现的(最后一点是关键,因为它决定了中断后控制将转移到哪里)。在伪代码中,它看起来像: alarm = set_alarm(timeout) try operation() catch timeout return end clear(alarm) JavaScript中有类似的东西吗?如果没有,是否有其他方法实现这种强制中断
alarm = set_alarm(timeout)
try
operation()
catch timeout
return
end
clear(alarm)
JavaScript中有类似的东西吗?如果没有,是否有其他方法实现这种强制中断
1“强制”的意思是,这些方法不依赖于超时代码的协作。这种合作可以采取内置超时参数的形式,也可以采取全局变量的形式,其设置被调用的代码会定期检查以决定是否继续,等等。,而无需进入类似于
Webworkers的内容,你唯一能做的就是让你的操作
函数跟踪它运行了多长时间,如果运行时间过长,就退出
当然,这可能会使事情处于不一致的状态
如果您正试图处理某件事情,但花费的时间太长,可以使用setTimeout
一次处理一小段事情
如果你真的很幸运,能够只针对最新和最好的浏览器而忽略IE,生成器函数
可能很神奇——但我们中很少有人这么幸运